编译
0、下载代码:
git clone -b 4.5.5 https://github.com/opencv/opencv.git
1、配置编译工具链,新建文件ax620a.toolchain.cmake,其内容如下:
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
# cache flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
注意CMAKE_XX
_FLAGS, 视具体环境确定
2、编译
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../ax620a.toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(pwd)/_install -DOPENCV_FORCE_3RDPARTY_BUILD=ON ../opencv
make -j$(nproc --ignore 1)
其中CMAKE_TOOLCHAIN_FILE
指定编译工具链配置文件,编译完成后,编译产物位于编译目录的_install目录下,若需要编译为静态库需添加参数-DBUILD_SHARED_LIBS=OFF
遇到的问题
若cmake构建时未指定参数-DOPENCV_FORCE_3RDPARTY_BUILD=ON
,编译时则会报错如下:
opencv/3rdparty/libtiff/tif_zip.c:41:10: fatal error: zlib.h: No such file or directory
#include "zlib.h"
^~~~~~~~
compilation terminated.
查看opencv/CMakeLists.txt
212 # ----------------------------------------------------------------------------
213 # OpenCV cmake options
214 # ----------------------------------------------------------------------------
215
216 OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
217
218 # 3rd party libs
219 OCV_OPTION(OPENCV_FORCE_3RDPARTY_BUILD "Force using 3rdparty code from source" OFF)
220 OCV_OPTION(BUILD_ZLIB "Build zlib from source" (WIN32 OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
.....
发现OPENCV_FORCE_3RDPARTY_BUILD
参数,添加到cmake编译命令行,重新编译通过
文章出处登录后可见!
已经登录?立即刷新