1. 程式人生 > >ubuntu 交叉編譯 android opencv

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: