ubuntu 交叉编译 android opencv

ubuntu:ubuntu16_64b

opencv 3.4.1

 

1.下载压缩包https://codeload.github.com/opencv/opencv/zip/3.4.1

 

2.查看 /platforms/android/android.toolchain.cmake,了解android编译方式:

ubuntu 交叉编译 android opencv_第1张图片

查看CMakeLists.txt编译选项:

ubuntu 交叉编译 android opencv_第2张图片

ubuntu 交叉编译 android opencv_第3张图片

 

3.编写build.sh,并修改为可执行。

ubuntu 交叉编译 android opencv_第4张图片

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编译:

ubuntu 交叉编译 android opencv_第5张图片

5.完成:

ubuntu 交叉编译 android opencv_第6张图片

头文件等在build目录:

ubuntu 交叉编译 android opencv_第7张图片

动态库目录output:
ubuntu 交叉编译 android opencv_第8张图片

ubuntu 交叉编译 android opencv_第9张图片

你可能感兴趣的:(ubuntu 交叉编译 android opencv)