使用CMake命令編譯Android平臺下的包
由於Android Studio封裝了一些編譯的細節,只知道結果但是不知道內部具體做了什麼樣的操作,所有想具體學習一下
#前言
Android Studio在2.2的版本中引入了Cmake編譯,具體的Cmake編譯與ndk-build的一些區別可以在網路上搜尋
以下是簡易編譯指令碼 每行後要加 \符號連結,不然會commond not found 問題
cmake -H./ -B./build
-DANDROID_ABI=arm64-v8a
-DANDROID_PLATFORM=android-16
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=./build
-DCMAKE_BUILD_TYPE=Debug
-DANDROID_NDK=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147
-DCMAKE_CXX_FLAGS=
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
-DCMAKE_SYSTEM_VERSION=16
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-DCMAKE_ANDROID_NDK=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147
-DCMAKE_TOOLCHAIN_FILE=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147/build/cmake/android.toolchain.cmake
-G Ninja
-DCMAKE_MAKE_PROGRAM=/Users/jinmingkai/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja \
命令的參考部落格1
參考部落格2
註釋:-H SetHomeDirectory 的意思,即sets the source directory for the project
-B 表示sets the binary directory 為 build 目錄(若目錄不存在,會自動建立)
-G 表示制定makefile生成工具
CMake_TOOLCHAINE_FILE 制定Android編譯鏈
編譯完後會在build資料夾生成build.ninja的檔案,執行ninja命令,編譯完就結束了。
其實ninja執行檔案需要加到系統環境中,ninja在/Users/jinmingkai/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja下
相關文章
- Windows平臺使用CMake+MinGW64編譯OpenCVWindows編譯OpenCV
- 編譯Android下可執行命令的FFmpeg編譯Android
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- windows下基於cmake配置opencv並使用visual studio編譯WindowsOpenCV編譯
- CentOS6.7下使用cmake編譯安裝MySQL5.5.32CentOS編譯MySql
- 在AndroidStudio下使用cmake編譯出靜態連結庫的方法Android編譯
- gRPC cmake Visual Studio編譯安裝 (全命令列)RPC編譯命令列
- protobuf cmake Visual Studio 編譯安裝 (全命令列)編譯命令列
- cmake編譯指定自己編譯的庫路徑編譯
- 如何用cmake編譯編譯
- CMake for Mac編譯工具Mac編譯
- 在WSL下為OpenWRT交叉編譯出CMake編譯
- 跨平臺編譯編譯
- Golang在各平臺下如何交叉編譯Golang編譯
- Linux下使用make命令編譯c原始檔Linux編譯
- VScode編譯opencv(Cmake + MinGW)VSCode編譯OpenCV
- 使用vs2015+cmake編譯opencv+opencv_contrib編譯OpenCV
- Android使用cmake編譯串列埠通訊.so檔案報錯cannot locate symbol "tcgetattr"Android編譯串列埠Symbol
- Win10下Qt+OpenCV+Cmake編譯錯誤Win10QTOpenCV編譯
- CMake編譯Qt工程時的問題編譯QT
- 從編譯連結到cmake編譯
- FFmpeg編譯Android使用的so庫編譯Android
- Go跨平臺交叉編譯Go編譯
- android反編譯相關命令總結Android編譯
- FFmpeg開發筆記(五十九)Linux編譯ijkplayer的Android平臺so庫筆記Linux編譯Android
- cmake中新增 -g編譯選項編譯
- .NET探索平臺條件編譯編譯
- Linux環境下, 原始碼編譯安裝詳解 (編譯CMake 3.15 和 gcc 5.3.0 為例)Linux原始碼編譯GC
- Android開發編譯curl庫給Android使用Android編譯
- Android cmake命令總結以及指令碼模板Android指令碼
- Android 11 原始碼下載+編譯教程Android原始碼編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- 使用CMake構建Android JNI工程Android
- C++跨平臺庫boost和Poco的編譯C++編譯
- [cmake]如何設定Debug和Release編譯模式編譯模式
- android 反編譯Android編譯
- android編譯方法Android編譯
- Assimp Android 編譯Android編譯