OpenCV 4.x交叉编译

编译

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装 OpenCV 4.x 可以按照以下步骤进行: 1. 安装依赖项 在安装 OpenCV 之前,需要先安装一些依赖项。在 Ubuntu 系统上,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev ``` 2. 下载 OpenCV 可以从 OpenCV 的官方网站下载最新版本的源代码:https://opencv.org/releases/ 3. 编译和安装 OpenCV 进入到下载的 OpenCV 源代码目录,然后执行以下命令: ``` mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_TBB=ON \ -D WITH_OPENMP=ON \ -D WITH_CUDA=OFF \ -D BUILD_SHARED_LIBS=OFF \ -D BUILD_opencv_world=ON \ -D OPENCV_ENABLE_NONFREE=ON \ -D PYTHON_DEFAULT_EXECUTABLE=$(which python3) \ -D BUILD_EXAMPLES=OFF \ -D BUILD_DOCS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D BUILD_TESTS=OFF \ .. ``` 其中,可以根据需要调整选项。例如,如果需要启用 CUDA 支持,可以将 `-D WITH_CUDA=OFF` 改为 `-D WITH_CUDA=ON`。 然后执行以下命令进行编译和安装: ``` make -j$(nproc) sudo make install ``` 编译和安装可能需要一些时间,取决于您的计算机性能。 4. 验证安装 安装完成后,可以使用以下命令验证安装是否成功: ``` pkg-config --modversion opencv4 ``` 如果安装成功,将输出 OpenCV 的版本号。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值