protobuf android 交叉編譯筆記

2022-08-13 04:12:15 字數 1228 閱讀 9039

目標是使用android ndk的工具鏈編譯出android armeabi-v7a可用的protobuf庫。

以上,準備完成。

選擇乙個你喜歡的位置,開啟cmd,執行下述命令。

mkdir build

cd build

cmake -g "mingw makefiles" \

-dcmake_toolchain_file=/build/cmake/android.toolchain.cmake \

-dcmake_make_program=/prebuilt/windows-x86_64/bin/make.exe \

-dprotobuf_build_tests=off \

/cmake

幾個關鍵引數略作解釋。

cmake_toolchain_file,這個變數指定了 cmake 使用的 toolchain 指令碼,toolchain指令碼會幫助配置交叉編譯使用的標頭檔案/庫檔案路徑,配置編譯器/鏈結器等一系列工具。

cmake_make_program,這個變數指定了cmake使用的make程式,如果系統的path中沒有make.exe的話(通常也不會有,除非安裝了 mingw 並且配置了path環境變數),就需要指定使用的make.exe程式。這裡使用了 ndk 自帶的 prebuilt 版make.exe

protobuf_build_tests,不要編譯測試用例,這一選項預設啟用,但在交叉編譯時會導致奇怪的問題。

-g "mingw makefiles",指定 cmake 生成mingw makefile,即一般所說的makefile

cmake --build . --target libprotobuf

cmake --build . --target libprotobuf-lite

分別編譯libprotobuflibprotobuf-lite兩個庫,這兩個庫就是我們將會用到的protobuf靜態庫了。

mklichee編譯筆記

環境 1 ubuntu16.04 lts x64 2 openjdk 1.7 依賴軟體列表 僅在ubuntu 16.04 x64上測試,其它版本可能不適用 sudo apt get install y git flex bison gperf build essential libncurses5 ...

android編譯筆記

清華大學映象 linaro映象 一 repo sync 是出現錯誤 error cannot fetch platform prebuilts qemu kernel fatal unable to connect to aosp.tuna.tsinghua.edu.cn aosp.tuna.tsi...

busybox編譯筆記

2.解壓 tar jxvf busybox 1.20.1.tar.bz 3.配置 1 進入解壓後的檔案busybox 1.20.1 cd busybox 1.20.1 2 進行預設配置 make defconfig 3 個別修改配置 make menuconfig busybox setting b...