ubuntu 交叉編譯 android opencv
2.檢視 /platforms/android/android.toolchain.cmake,瞭解android編譯方式:
檢視CMakeLists.txt編譯選項:
3.編寫build.sh,並修改為可執行。
build.sh內容如下:
CURRENT_FOLDER=/home/xxx/opencv-3.4.1/ NDK_FOLDER=/home/xxx/android-ndk-r14b/ TOOLCHAIN_FILE=$CURRENT_FOLDER/platforms/android/android.toolchain.cmake OUTPUT_FLODER=$CURRENT_FOLDER/output/
rm -rf output
#armeabiv
rm -rf build mkdir build cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_FILE \ -DANDROID_NDK=$NDK_FOLDER \ -DCMAKE_BUILD_TYPE=Release \ -DANDROID_ABI=armeabi \ -DANDROID_NATIVE_API_LEVEL=24 \ -DBUILD_SHARED_LIBS=ON \ -DOpenCV_BINARY_DIR=$OUTPUT_FLODER .. make -j6
#armeabi-v7a cd .. rm -rf build mkdir build cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_FILE \ -DANDROID_NDK=$NDK_FOLDER \ -DCMAKE_BUILD_TYPE=Release \ -DANDROID_ABI=armeabi-v7a \ -DANDROID_NATIVE_API_LEVEL=24 \ -DBUILD_SHARED_LIBS=ON \ -DOpenCV_BINARY_DIR=$OUTPUT_FLODER .. make -j6
#arm64-v8a cd .. rm -rf build mkdir build cd build cmake -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_FILE \ -DANDROID_NDK=$NDK_FOLDER \ -DCMAKE_BUILD_TYPE=Release \ -DANDROID_ABI=arm64-v8a \ -DANDROID_NATIVE_API_LEVEL=24 \ -DBUILD_SHARED_LIBS=ON \ -DOpenCV_BINARY_DIR=$OUTPUT_FLODER .. make -j6
4.執行build.sh編譯:
5.完成:
標頭檔案等在build目錄:
動態庫目錄output: