说明

参考 https://zhuanlan.zhihu.com/p/301203711

依赖

编译命令

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=/home/cc/software/opencv-3.4.12/install \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_NATIVE_API_LEVEL=android-21 \
-DANDROID_ARM_NEON=TRUE \
-DBUILD_opencv_java=OFF \
-DBUILD_ANDROID_PROJECTS=OFF \
-DBUILD_ANDROID_EXAMPLES=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_opencv_ittnotify=OFF \
-DBUILD_ITT=OFF \
-DWITH_CUDA=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENCLAMDFFT=OFF \
-DWITH_OPENCLAMDBLAS=OFF \
-DWITH_VA_INTEL=OFF \
-DCPU_BASELINE_DISABLE=ON \
-DENABLE_SSE=OFF \
-DENABLE_SSE2=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DCMAKE_BUILD_TYPE=RELEASE \
-DBUILD_EXAMPLES=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_opencv_apps=OFF \
-DWITH_1394=OFF \
-DWITH_ARITH_DEC=OFF \
-DWITH_ARITH_ENC=OFF \
-DWITH_CUBLAS=OFF \
-DWITH_CUFFT=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_GDAL=OFF \
-DWITH_GSTREAMER=OFF \
-DWITH_GTK=OFF \
-DWITH_HALIDE=OFF \
-DWITH_JASPER=OFF \
-DWITH_NVCUVID=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_PTHREADS_PF=OFF \
-DWITH_QUIRC=OFF \
-DWITH_V4L=OFF \
-DWITH_WEBP=OFF \
-DWITH_MATLAB=OFF \
-DANDROID_STL=c++_static \
-DBUILD_SHARED_LIBS=OFF \
-DOpenCV_STATIC=ON \
-DCMAKE_CXX_FLAGS_RELEASE=-g2 \

说明:

  1. $ANDROID_NDK 为ndk路径
  2. 上面命令是静态库编译 动态库编译更改编译选项 (-DBUILD_SHARED_LIBS=ON -DANDROID_STL=c++_shared)
  3. 根据需求修改自己的编译选项,我基本上都没有打开其他的编译选项