本文主要讲述了在linux平台下对opencv进行rv1126交叉编译的全过程以及遇到的一些问题,对主要参考博客的步骤进行了一些纠正,希望我的一些小经验能够为大家带来帮助。
主要参考:【瑞芯微RV1126(板端摄像头图像数据采集)】①使用RV1126交叉编译工具链交叉编译opencv,c++代码直接调用VideoCapture 采集图像数据-优快云博客
一、环境配置及安装包(Ubuntu与QT自行安装配置)
Ubuntu_16_04_64
cmake:3.22.6
交叉编译工具:gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
opencv:4.5.3
ffmpeg3.4.8
二、 安装包下载与配置
(1)交叉编译工具
下载地址:Downloads | GNU-A Downloads – Arm Developer
在/home目录中新建RV1126文件夹,将此压缩包放到此文件夹中执行以下命令解压:
xz -d gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
tar -xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar
解压完成后将此工具的bin文件夹目录写入到/.bashrc文件中,也就是设置环境变量:
sudo gedit ~/.bashrc //编辑bash
export PATH=/home/wzq/RV1126/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:$PATH //将此行添加到bash的最后,注意路径要改成自己的
source ~/.bashrc //重新执行刚修改的bash文件,使之立即生效
(2)cmake
将此压缩包放到RV1126文件夹下,解压并执行以下命令:
tar -zxvf cmake-3.22.6-linux-x86_64.tar.gz
cd cmake-3.22.6-linux-x86_64
cd share
sudo cp -r cmake-3.22 /usr/share
cd ..
cd bin
sudo cp cmake /usr/bin/cmake
sync
cmake --version //执行这条命令看到cmake的版本是3.22.6的话就表示升级成功了。
(3)ffmpeg3.4.8
下载地址:在terminal中输入以下命令:
wget http://www.ffmpeg.org/releases/ffmpeg-3.4.8.tar.gz //安装包
tar -zxvf ffmpeg-3.4.8.tar.gz

将yasm压缩包也放到RV1126文件夹中解压并安装:
tar -zxvf yasm-1.3.0.tar.gz //解压
cd yasm-1.3.0
./configure //配置
make
make install //安装
安装ffmpeg,输入以下指令:
cd ..
cd ffmpeg-3.4.8
./configure --enable-shared --prefix=/usr/local/ffmpeg //prefix指定安装路径
make
make install
成功安装的结果:
其中bin是ffmpeg主程序二进制目录,include是C/C++头文件目录,lib是编译好的库文件目录,share是文档目录。
安装完成之后需要手动将这里的lib目录链接到系统库中:
cd /etc/ld.so.conf.d
touch ffmpeg.conf
sudo gedit ffmpeg.conf
/usr/local/ffmpeg/lib
ldconfig
./ffmpeg -version
最后就是设置环境变量,否则安装opencv时会找不到ffmpeg依赖:
sudo gedit /etc/profile //打开文件
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig //在打开的文件最后一行添加环境变量
source /etc/profile //使环境变量立刻生效
三、交叉编译opencv
下载地址:Releases - OpenCV
将此压缩包放到RV1126文件夹下,解压并进入:
unzip opencv-4.5.3.zip
cd opencv-4.5.3
mkdir build_arm
mkdir install_arm
cd build_arm
输入以下指令配置编译信息,可以使用gui:
sudo apt-get install cmake-gui
cmake-gui
也可以直接输入以下指令:(需要修改安装的文件夹)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -D CMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ -D BUILD_SHARED_LIBS=ON -D CMAKE_CXX_FLAGS=-fPIC -D CMAKE_C_FLAGS=-fPIC -D CMAKE_EXE_LINKER_FLAGS=-lpthread -l -D ENABLE_PIC=ON -D WITH_1394=OFF -D WITH_ARAVIS=OFF -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_CLP=OFF -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_GSTREAMER_0_10=OFF -D WITH_HALIDE=OFF -D WITH_HPX=OFF -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_INF_ENGINE=OFF -D WITH_IPP=OFF -D WITH_ITT=OFF -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_LIBREALSENSE=OFF -D WITH_NVCUVID=OFF -D WITH_OPENCL=OFF -D WITH_OPENCLAMDBLAS=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCL_SVM=OFF -D WITH_OPENEXR=OFF -D WITH_OPENGL=OFF -D WITH_OPENMP=OFF -D WITH_OPENNNI=OFF -D WITH_OPENNNI2=OFF -D WITH_OPENVX=OFF -D WITH_PNG=OFF -D WITH_PROTOBUF=OFF -D WITH_PTHREADS_PF=ON -D WITH_PVAPI=OFF -D WITH_QT=OFF -D WITH_QUIRC=OFF -D WITH_TBB=OFF -D WITH_TIFF=ON -D WITH_VULKAN=OFF -D WITH_WEBP=ON -D WITH_XIMEA=OFF -D CMAKE_INSTALL_PREFIX=./outputarm -D WITH_GTK=OFF ..
编译成功后:
如果是上面全是no的情况,还有一种方法可以试试:将/usr/local/ffmpeg/lib/pkgconfig目录下的pc文件复制到/usr/local/lib/pkgconfig目录下,当然最好还是在前面的安装步骤仔细些为好。
上面成功之后开始编译和安装:
sudo make -j4
sudo make install
四、常见问题:
参考:
瑞芯微RV1126/1109开发流程之opencv交叉编译_rv1126使用交叉编译工具编译cpp-优快云博客
补充:(很多问题都可以通过网络查询和gpt解决)