中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么編譯Android動態庫

發布時間:2022-04-19 14:08:50 來源:億速云 閱讀:219 作者:iii 欄目:開發技術

這篇“怎么編譯Android動態庫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么編譯Android動態庫”文章吧。

C++ 2.FFmpeg-4.3.2 編譯 Android 動態庫 (ubuntu 18.04 , r21b)

編譯環境

Linux 系統:

ubuntu18.04

NDK

ndk/android-ndk-r21b

FFmpeg

ffmpeg-4.3.2

ffmpeg 下載后的文件名

ffmpeg_4.3.2.orig.tar.xz

解壓方式

tar xvJf ffmpeg_4.3.2.orig.tar.xz

在 root 權限下操作

編譯

  • 4.3.2 版本不需要修改 configure 文件
  • 編寫 Android 編譯腳本

新建文件 build_android.sh

#!/bin/bash# ndk路徑NDK=/home/build/workspace/hqq/vision/vision-app/ndk/android-ndk-r21b# 編譯工具鏈目錄,ndk17版本以上用的是clang,以下是gccTOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64# 版本號API=21# 交叉編譯樹的根目錄(查找相應頭文件和庫用)SYSROOT="${TOOLCHAIN}/sysroot"# 定義執行configure的shell方法function build_android() {    ./configure \        --prefix=$PREFIX \        --enable-shared \        --disable-static \        --enable-jni \        --enable-gpl \        --enable-small \        --disable-doc \        --disable-programs \        --disable-symver \        --target-os=android \        --arch=$ARCH \        --cpu=$CPU \        --cc=$CC \        --cxx=$CXX \        --enable-cross-compile \        --cross-prefix=$CROSS_COMPILE \        --sysroot=$SYSROOT \        --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \        --extra-ldflags="" \        --disable-asm \        $COMMON_FF_CFG_FLAGS    make clean    make -j16    make install}# armOUTPUT_FOLDER=armARCH=armCPU=armv7-aTOOL_CPU_NAME=armv7aTOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androideabiOPTIMIZE_CFLAGS="-marm -march=$CPU"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# arm64,這個指令集最低支持api21OUTPUT_FOLDER=arm64-v8aARCH=aarch64CPU=armv8-aTOOL_CPU_NAME=aarch64TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=$CPU"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/aarch64-linux-android-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# x86OUTPUT_FOLDER=x86ARCH=x86CPU=x86TOOL_CPU_NAME=i686TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# x86_64,這個指令集最低支持api21OUTPUT_FOLDER=x86_64ARCH=x86_64CPU=x86-64TOOL_CPU_NAME=x86_64TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=$CPU -mtune=intel -msse4.2 -mpopcnt -m64"# 輸出目錄PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/x86_64-linux-android-# so的輸出目錄, --libdir=$LIB_DIR 可以不用指定,默認會生成在$PREFIX/lib目錄中#LIB_DIR="${PWD}/android/libs/$OUTPUT_FOLDER"# 編譯器CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android

修改文件權限

chmod 777 build_android.sh

執行 build_android.sh

可編譯出 "armeabi-v7a", "arm64-v8a", "x86", "x86_64"

假如編譯失敗,在打開文件粘貼時

:set ff #查看文件的格式會看到fileformat=dos 或者者 fileformat=unix

:set ff=unix #設置為unix格式

:wq #保存退出

編譯后文件

怎么編譯Android動態庫怎么編譯Android動態庫

怎么編譯Android動態庫

取 .so 庫放到 Android 項目中

怎么編譯Android動態庫

github lib 庫

android_ffmpeg_lib

taxiao213/android_ffmpeg_lib

以上就是關于“怎么編譯Android動態庫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大兴区| 阳新县| 福鼎市| 年辖:市辖区| 伊宁县| 漠河县| 大竹县| 太仓市| 隆子县| 宁明县| 鱼台县| 嘉荫县| 浪卡子县| 三门县| 兴和县| 望奎县| 淅川县| 洱源县| 会昌县| 南和县| 崇文区| 西安市| 芦溪县| 固安县| 新丰县| 全州县| 霍山县| 南开区| 东乡族自治县| 永胜县| 汪清县| 黑水县| 澄城县| 汾西县| 新津县| 堆龙德庆县| 涿鹿县| 长沙市| 盐边县| 漯河市| 金坛市|