OpenCV编译作业指导书

允我心安 提交于 2020-03-10 05:59:45
# 检查编译目录,没有则创建
if [ ! -d build ]; then
    mkdir build
fi
cd build
# 指定cmake工具(使用Android SDK的cmake,Android SDK可自行去官网下载,opencv4需要cmake3.8版本以上)
/home/user/cmake-3.12.1/bin/cmake .. \
# 指定编译版本宏,这里是arm64版本
-DANDROID_ABI=arm64-v8a \
# 指定Native API Level
-DANDROID_NATIVE_API_LEVEL=21 \
# 打开该编译选项可使用汇编指令加速视频编解码、信号处理、色彩空间转换等
-DANDROID_ARM_NEON=ON \
# 指定编译器类型(opencv不再使用C语言风格接口,因此gcc不合适)
-DANDROID_TOOLCHAIN=clang \
#路径android.toolchain.cmake是CMake的使用进行交叉编译的Android文件。通常情况下,该文件位于 $NDK/build/cmake/目录中,其中$NDK是你的主机上的NDK安装目录
-DCMAKE_TOOLCHAIN_FILE=/home/user/toolchain_r20b/android-ndk-r20/build/cmake/android.toolchain.cmake \
# 主机上安装NDK根目录的绝对路径
-DANDROID_NDK=/home/user/toolchain_r20b/android-ndk-r20 \
# 主机上安装SDK根目录的绝对路径
-DANDROID_SDK=/home/user/toolchain_r20b/ \
# 生成动态链接库
-DBUILD_SHARED_LIBS=ON \
# 打开FFMPEG编译选项,当工程中需要编解码视频的时候需要用到添加该变异选项
-DWITH_FFMPEG=ON  \
# 打开FFMPEG编译选项(当需要FFMPEG支持时,需要修改$OPENCV_SRC/modules/videoio/cmake/ detect_ffmpeg.cmake 文件,注释13行和26行,联网情况下会自动下载FFMPEG第三方库)
-DBUILD_FFMPEG=ON  \
# 指定INSTALL路径
-DCMAKE_INSTALL_PREFIX=/home/user/opencv/opencv-4.1.1/lib \
# 指定发布版本是Release还是Debug
-DCMAKE_BUILD_TYPE=Release \
# 关闭Android project的编译(如果要编译这些,需要配置SDK更多环境,我们需要的是android下的c++计算库,不需要编译android project)
-DBUILD_ANDROID_PROJECTS=OFF  \
-DBUILD_ANDROID_EXAMPLES=OFF  \
# 打开OPENCL开关
-DWITH_OPENCL=ON \
# 打开通用并行算法编译选项
-DWITH_TBB=ON  \
# 打开处理器NEON技术
-DENABLE_NEON=ON \
-DBUILD_TESTS=OFF  \
-DBUILD_PERF_TESTS=OFF
# 打开多线程编译开关
make -j8
# 编译出SDK
make install
# 压缩so 否则未压缩的文件很大
cd /home/user/opencv/opencv-4.1.1/lib/sdk/native/libs/arm64-v8a
/toolchain_r20b/android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip --strip-unneeded *.so
	
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!