编译android平台使用的opencv

本文是在ubuntu上编译android native so库

首先去https://opencv.org/releases/下载opencv源码,这里用的是4.6.0版本。

解压后进入opecv-4.6.0根目录

mkdir build && cd build

新建脚本build.sh,内容如下:

export ANDROID_NDK=/你的目录xxx/Android/Sdk/ndk/23.1.7779620/
cmake \
-DANDROID_NATIVE_API_LEVEL=android-30 \
-DANDROID_ABI=arm64-v8a \
-DCMAKE_BUILD_TYPE=RELEASE \
-DANDROID_STL=c++_shared  \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_EXAMPLES=OFF \
-DBUILD_ANDROID_EXAMPLES=OFF \
-DBUILD_ANDROID_PROJECTS=OFF \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=/你的目录xxx/opencv-out \
-DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON \
..

注意:这里只编译了arm64位的库,有其他需要自行修改ANDROID_ABI项。

执行脚本,检查如果没有错误,就可以进行真正的编译了

make -j8
make install

编译产出物会拷贝到上述脚本设置的安装目录

“CMAKE_INSTALL_PREFIX=/你的目录/opencv-out “

一开始没有设置“-DOPENCV_DISABLE_FILESYSTEM_SUPPORT=ON",编译完放到应用里,运行的时候就报错了,参考 https://github.com/opencv/opencv/issues/18463 修改了才好。

你可能感兴趣的:(android,opencv)