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编译命令行,重新编译通过



