ubuntu20.04 arm-linux-gnueabihf交叉编译opencv4.7.0 与opencv-contrib-4.7.0

  1. 安装交叉编译工具链

编译的目标硬件是RV1126,编译工具链为32位的arm-linux-gnueabihf,本次使用的是8.3版本,可在Downloads | GNU-A Downloads – Arm Developer进行下载。

ubuntu20.04 arm-linux-gnueabihf交叉编译opencv4.7.0 与opencv-contrib-4.7.0_第1张图片

下载后,解压到自己的安装目录,比如解压到/opt目录下:

然后将bin目录配置到PATH环境变量即可,比如在~/.bashrc中设置:

export PATH="$PATH:/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/"

  1. 安装cmake

cmake的安装可以多种方式,这里选择官网下载指定版本的cmake源码,进行编译安装。

官网:https://cmake.org/download/,比如下载cmake-3.25.1.tar.gz源码:

ubuntu20.04 arm-linux-gnueabihf交叉编译opencv4.7.0 与opencv-contrib-4.7.0_第2张图片

在编译安装前首先安装openssl,命令如下:

sudo apt-get install libssl-dev

解压cmake-3.25.1.tar.gz,进入到源码目录,执行如下命令,进行配置、编译、安装:

./bootstrap
make -j$(nproc)
sudo make install

在安装的过程中,注意安装的路径,一般默认安装到/usr/local/bin/目录下:

将/usr/local/bin配置到PATH环境变量即可,比如在~/.bashrc中设置:

export PATH="$PATH:/usr/local/bin"

  1. 编译安装opencv-4.7.0、opencv-contrib-4.7.0

编译安装的步骤与x86平台类似,可参考文章:

(168条消息) Ubuntu20.04 编译opencv-4.5.0与opencv-contrib-4.5.0_洪流之源的博客-CSDN博客_opencv-contrib4.5.0

不过编译的命令与x86平台有差别,build.sh修改如下:

#!/bin/bash

set -e

if [[ ! -d build-arm-linux-gnueabihf ]]; then
 mkdir build-arm-linux-gnueabihf
fi
 
cd build-arm-linux-gnueabihf
rm -rf *
 
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \
      -D CMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \
      -D CMAKE_INSTALL_PREFIX=install \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.7.0/modules \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D WITH_GTK=OFF \
      -D WITH_PNG=OFF \
      ..
 
make -j$(nproc)
 
make install

主要是添加了交叉编译工具链、关闭了GTK、PNG的编译选项。

你可能感兴趣的:(opencv,算法)