瑞芯微Rockchip开发者社区
直播中

张艳

8年用户 1704经验值
私信 关注
[经验]

opencv库直接在RK3588开发板上进行编译

在RK3588 c++的开发中用到了opencv库,但是官方的SDK例程中的opencv库不完整,如没有读视频的cv::VideoCapture函数,所以重新编译opencv库

opencv库可以直接在RK3588上进行编译,也可以选择在自己的Ubuntu上交叉编译opencv,然后在RK3588上调用编译好的库文件。

目标板:RK3588

PC:ubuntu18.04

opencv版本:3.4.5:https://opencv.org/releases/

编译工具链:gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu:https://developer.arm.com/downloads/-/gnu-a

步骤:

下载opencv源码,创建build和install文件夹

cd opencv-3.4.5

mkdir build

mkdir install

安装cmake

sudo snap install cmake --classic

gcc环境变量配置

vim ~/.bashrc

在最后添加

export PATH="/home/wyh/opencv/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH"

使环境变量生效

source ~/.bashrc

验证gcc

arm-none-linux-gnueabihf-gcc -v

启动cmake-gui完成配置然后进行编译

cmake-gui

进入opencv的build目录

make -j4

我遇到的一些错误

报错:#error “No suitable threading library available.” #error "No suitable threading library available.

报错:undefined reference to ‘png_init_filter_functions_neon’

解决:修改3rdparty/libpng/pngpriv.h

128: /*# if (defined( ARM_NEON ) || defined(__ARM_NEON)) && */

129:if defined(PNG_ARM_NEON) && (defined( ARM_NEON ) || defined(__ARM_NEON)) &&

编译成功后:

make install

最后把install文件夹复制到板子上

将板子上工程里的CMakeLists.txt文件中配置好新编译的opencv库的路径

编译项目工程生成可执行文件

. build-linux-RK3588.sh

. run.sh

目前opencv编译成功了,但是移植到板子上编译项目时会出现

这类错误:error while loading shared libraries: …/…/lib/libopencv_core.so

原作者:Bugger99

更多回帖

发帖
×
20
完善资料,
赚取积分