目標是使用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
分別編譯libprotobuf
和libprotobuf-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...