首页IT科技编译kernel 中 app(踩坑记录1——RK3588编译OpenCV)

编译kernel 中 app(踩坑记录1——RK3588编译OpenCV)

时间2025-09-19 13:22:44分类IT科技浏览6032
导读:这两天有在板卡上跑代码的需求,拿到了一块RK3588CPU的板子,型号是HINLINK的HK88....

这两天有在板卡上跑代码的需求                ,拿到了一块RK3588CPU的板子                       ,型号是HINLINK的HK88.

以后记录一下调试这个板子的问题        ,便于以后查看

0. 基本信息

板卡系统:ArmBian            ,基于Ubuntu20.04

OpenCV版本:3.4.5

采用方法:交叉编译(先在自己PC上编译                       ,再放到板卡上)

PC系统:VMware虚拟机            ,64位Ubuntu20.04

本文的其他参考资料:

资料1

资料2

资料3

为什么采用交叉编译

因为我这个板子没有无线网卡        ,有线网的条件有限               。按照其他人的说法                       ,在板子上直接编译也是可行的                        。

1. 步骤

1.0 安装Cmake

在PC端                ,首先安装cmake    ,为了保险也装上gcc和g++        。例如                       ,可以这样安装Cmake:

sudo snap install cmake --classic

除此之外                   ,一定也要安装make:

sudo apt install make

在板卡上也要安装Cmake

           。如果板卡能上网,直接安装即可                        。如果无法上网                    ,还需要离线安装            。

首先下载Cmake:https://cmake.org/download/

然后选择Linux aarch64

下载后到板子的某目录下                       ,解压:

tar -xvfz cmake-3.25.1-linux-aarch64.tar.gz

为了方便    ,将解压后的文件夹重命名:

mv cmake-3.25.1-linux-aarch64 cmake

解压后                ,在.bashrc中加入子目录中的bin作为环境变量:

export PATH="/home/wjp/cmake/bin:$PATH"

随后激活并验证

source .bashrc cmake --version

如果这样不成功                       ,则参照https://www.cnblogs.com/rainbow-tan/p/14693323.html

1.1 下载

首先下载OpenCV        ,网址:https://opencv.org/releases/

然后下载交叉编译工具链            ,我们是需要从x86_64到aarch64                       ,因此选择gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu       。下载地址:https://developer.arm.com/downloads/-/gnu-a

1.2 解压OpenCV和交叉编译工具链

在PC上            ,将下载好的OpenCV压缩包进行解压                        。其实放在哪个目录无所谓        ,假设在home下:

unzip opencv-3.4.5.zip

随后进入解压后的文件夹                       ,并新建build与install目录                。build用来存放cmake的中间文件                ,install用来存放安装文件    ,将来粘贴到板子上   。

cd opencv-3.4.5 mkdir build mkdir install

同样                       ,解压交叉编译工具链:

tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz

之后将其bin子目录加入.bashrc:

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

同样需要激活

source .bashrc

1.3 编译OpenCV

首先启动cmake的gui界面:

cmake-gui

Where is the source code 选择OpenCV所在目录                   ,Where to build the binaries选择OpenCV下的build文件夹:

之后点左下角的configure,进行如图配置:

点击next                    ,然后如图配置:

点击finish                       ,成功后    ,在Search栏中搜索PREFIX, 选定安装目录到install文件夹下:

此外CMAKE_BUILD_TYPE设置成RELEASE                ,其他的选项可以个性化配置                       ,我就没有更改其他的                       。

再次点击configure        ,点击generate                    。

成功后            ,进入OpenCV的build目录                       ,执行:

sudo make -j4

j后面是进程数            ,不指定也可以。

在编译阶段肯定会报错        ,我遇到的错误有两个                       ,第一个是:

解决方法:按照提示找到路径                ,即3rdpatry/carotene/hal/carotene/Cmakefiles/carotene_objs.dir    ,找到里面的build.make和flags.make                       , 将里面的ipcp-unit-growth全部替换为ipa-cp-unit-growth                   。

第二个是:

fetal error : no such file or dictionary: zlib.h

是报找不到zlib.h头文件的错误                        。一开始我去zlib的官网安装zlib                   ,但是没有用,解决的方法是:不要用外部的zlib                    ,直接用OpenCV目录里的zlib                       ,即./opencv-3.4.5/3rdparty/zlib/zlib.h

于是    ,哪个文件报找不到zlib.h                ,就直接更改include即可. 即:

将报错行的#include 或#include "zlib.h"改成相对路径                       ,让它引用到./opencv-3.4.5/3rdparty/zlib/zlib.h:

例如./opencv-3.4.5/3rdparty/libpng/pngstruct.h中的#include "zlib.h"改为

#include "../zlib/zlib.h

成功后 执行

sudo make install

1.4 将OpenCV移动到板卡上

上一步执行完毕后        ,install文件夹里应该就有东西了    。我们只需要这个文件夹            ,但是不要直接复制粘贴                       ,因为里面的一些so文件是不可以复制粘贴的               。为此            ,我们先把install打包:

tar -cvf install.tar install

随后将install.tar放到板卡某路径下        ,例如/home/wjp, 并解压:

tar -xvf install.tar

随后要做两处更改                       ,一是在/etc/ld.so.conf中增加:

cd /etc sudo vim ld.so.conf

末尾增加:

/home/wjp/install/lib

然后在ld.so.conf.d中新建opencv.conf:

cd ld.so.conf.d sudo vim opencv.conf

编写内容:

/home/wjp/install/lib

1.5 测试

采用OpenCV提供的sample简单测试

cd ~/opencv-3.4.5/samples/cpp/example_cmake

在里面的CMakeLists.txt加入OpenCVConfig.camke所在路径, 我的为/home/wjp/install/share/OpenCV

即在line11 find_package(Opencv REQUIRED)之后加上

set(OpenCV_DIR /home/wjp/install/share/OpenCV)

随后执行

cmake . make ./opencv_example

不报错即可

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
bios中设置光驱(bios怎么设置从光驱启动 设置bios从u盘启动视频教程)