RK3588移植 opencv交叉编译

参考资料:
1
2
3
4
5
工程参考
在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

步骤:

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

    cd opencv-3.4.5
    mkdir build
    mkdir install
    
  2. 安装cmake

    sudo snap install cmake --classic
    
  3. 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
    
  4. 启动cmake-gui完成配置然后进行编译

    cmake-gui
    

    参考以下资料进行配置
    https://www.ebaina.com/articles/140000013416
    https://zhuanlan.zhihu.com/p/84839635
    https://blog.csdn.net/xidaoliang/article/details/124730226?spm=1001.2014.3001.5502

    进入opencv的build目录
    make -j4
    

    我遇到的一些错误
    报错:#error “No suitable threading library available.” #error "No suitable threading library available.
    解决:https://www.cnblogs.com/leoking01/p/16046212.html

    报错:undefined reference to ‘png_init_filter_functions_neon’
    解决:修改3rdparty/libpng/pngpriv.h

    128/*# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \*/
    129if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
    

    编译成功后:

    make install
    

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

  5. 将板子上工程里的CMakeLists.txt文件中配置好新编译的opencv库的路径
    编译项目工程生成可执行文件

    . build-linux-RK3588.sh
    
    . run.sh
    

目前opencv编译成功了,但是移植到板子上编译项目时会出现
这类错误:error while loading shared libraries: …/…/lib/libopencv_core.so
按照以下博客操作没有解决问题,可能opencv编译的还是有问题
http://blog.chinaunix.net/uid-28669227-id-4843715.html
https://blog.csdn.net/Cwenge/article/details/85326197

既然是找不到.so文件,那直接把…/…/lib的位置找到,把编译好的库(.so文件)直接复制进去是否可行?
或者直接用别人编译好的opencv库?
https://github.com/BaronLeeLZP/rockchip_rv1109_rknn-yolov3-demo

你可能感兴趣的:(AI,opencv,人工智能,计算机视觉)