位置: IT常识 - 正文

踩坑记录1——RK3588编译OpenCV(踩坑视频)

编辑:rootadmin
踩坑记录1——RK3588编译OpenCV

推荐整理分享踩坑记录1——RK3588编译OpenCV(踩坑视频),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:网络语言踩坑是什么意思啊,踩坑什么意思,踩坑视频,踩坑指南,踩坑是啥,踩坑是啥,踩坑视频,踩坑视频,内容如对您有帮助,希望把文章链接给更多的朋友!

这两天有在板卡上跑代码的需求,拿到了一块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 .bashrccmake --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.5mkdir buildmkdir 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"踩坑记录1——RK3588编译OpenCV(踩坑视频)

同样需要激活

source .bashrc1.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 <zlib.h>或#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 install1.4 将OpenCV移动到板卡上

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

tar -cvf install.tar install

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

tar -xvf install.tar

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

cd /etcsudo vim ld.so.conf

末尾增加:

/home/wjp/install/lib

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

cd ld.so.conf.dsudo vim opencv.conf

编写内容:

/home/wjp/install/lib1.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

不报错即可

本文链接地址:https://www.jiuchutong.com/zhishi/287190.html 转载请保留说明!

上一篇:Pytorch文档解读|torch.nn.MultiheadAttention的使用和参数解析(pytorch说明文档)

下一篇:以圣保罗大教堂为背景的千禧桥,英国伦敦 (© Scott Baldock/Getty Images)(圣保罗大教堂是什么教)

  • 荣耀play5tpro怎么投屏(荣耀play5tPro怎么装内存卡)

    荣耀play5tpro怎么投屏(荣耀play5tPro怎么装内存卡)

  • 微信聊天记录删除之后的恢复方法是什么(微信聊天记录删除了还能找回来吗)

    微信聊天记录删除之后的恢复方法是什么(微信聊天记录删除了还能找回来吗)

  • 华为nova5pro和华为p20pro对比(华为nova5pro和华为p30哪个好)

    华为nova5pro和华为p20pro对比(华为nova5pro和华为p30哪个好)

  • 为什么不可以改微信号(为什么不可以改微信名)

    为什么不可以改微信号(为什么不可以改微信名)

  • 手机一会一响怎么回事(手机一会响一会不响怎么回事)

    手机一会一响怎么回事(手机一会响一会不响怎么回事)

  • 苹果屏幕原彩怎么看(苹果屏幕原彩怎么设置)

    苹果屏幕原彩怎么看(苹果屏幕原彩怎么设置)

  • 有颜色的硅胶手机壳脏了怎么清洗(有颜色的硅胶手机壳有毒吗)

    有颜色的硅胶手机壳脏了怎么清洗(有颜色的硅胶手机壳有毒吗)

  • 怎么判断抖音被限流(怎么判断抖音被拉黑还是删除)

    怎么判断抖音被限流(怎么判断抖音被拉黑还是删除)

  • 手机屏幕边上黑了一块(手机屏幕边上黑了一点怎么回事)

    手机屏幕边上黑了一块(手机屏幕边上黑了一点怎么回事)

  • 拼多多为什么自动退款给买家(拼多多为什么自动设置优惠券)

    拼多多为什么自动退款给买家(拼多多为什么自动设置优惠券)

  • nove5i和nove5i pro有什么区别(nove5i和nove5i pro 屏幕一样的吗)

    nove5i和nove5i pro有什么区别(nove5i和nove5i pro 屏幕一样的吗)

  • protruly是什么手机(prosperous是什么意思?)

    protruly是什么手机(prosperous是什么意思?)

  • 微信解封人脸识别通不过怎么办

    微信解封人脸识别通不过怎么办

  • 怎样删除qq自动回复(怎样删除qq自动回复的语句)

    怎样删除qq自动回复(怎样删除qq自动回复的语句)

  • 虚商卡号什么意思(什么叫虚商卡号)

    虚商卡号什么意思(什么叫虚商卡号)

  • 红米k20屏幕刷新率是多少(红米k20屏幕刷新率)

    红米k20屏幕刷新率是多少(红米k20屏幕刷新率)

  • qq音乐密码怎么改(qq音乐设置密码)

    qq音乐密码怎么改(qq音乐设置密码)

  • 2345看图王是什么软件(2345看图王是干啥的)

    2345看图王是什么软件(2345看图王是干啥的)

  • ipx7级防水包含热水吗(ipx7级防水和ipx5级防水)

    ipx7级防水包含热水吗(ipx7级防水和ipx5级防水)

  • 快手青少年模式怎么关闭(快手青少年模式怎么开启)

    快手青少年模式怎么关闭(快手青少年模式怎么开启)

  • 微信怎样设置手机号码(微信怎样设置手机号码显示)

    微信怎样设置手机号码(微信怎样设置手机号码显示)

  • 微信上的视频怎么保存到手机(微信上的视频怎么投屏到电视上)

    微信上的视频怎么保存到手机(微信上的视频怎么投屏到电视上)

  • 京东退货自提点在哪里(京东退货自提点本区域没有怎么办)

    京东退货自提点在哪里(京东退货自提点本区域没有怎么办)

  • iphone7p是什么处理器(iphone7p是啥处理器)

    iphone7p是什么处理器(iphone7p是啥处理器)

  • 小爱音响怎么绑定qq音乐(小爱音响怎么绑定手机app)

    小爱音响怎么绑定qq音乐(小爱音响怎么绑定手机app)

  • 小米8有语音唤醒功能吗(小米8语音唤醒功能)

    小米8有语音唤醒功能吗(小米8语音唤醒功能)

  • 手机怎么打空白的符号(手机怎么打空白名字代码)

    手机怎么打空白的符号(手机怎么打空白名字代码)

  • 别再等 Win11 22H1 了,消息称微软下一个 Windows 11 大版本明年 10 月份发布(别再等待别在徘徊是什么歌)

    别再等 Win11 22H1 了,消息称微软下一个 Windows 11 大版本明年 10 月份发布(别再等待别在徘徊是什么歌)

  • 税控盘这个月没有反写会怎么样
  • 住宿普通发票怎么做账
  • 小规模经营租赁开票税率
  • 增量留底退税基数是多少?
  • 金蝶利润表为什么没有收入
  • 小规模公司交税时间
  • 年度财务报表和季度财务报表一样吗
  • 汇算清缴的利润表本期数与本年数
  • 收到承兑如何贴现
  • 高新技术企业进项加计扣除
  • 医院业务支出包括哪些内容科目
  • 车改补贴是否计入工资总额
  • 增值税专用发票有效期是多长时间
  • 个人去税务局开劳务票 税点是多少
  • 差旅费住宿专票可以抵扣增值税吗
  • 外资企业需要遵守哪些法律
  • 2021年个体工商户的税率是多少
  • 资产处置损失计算方法
  • 固定资产处理怎么入账
  • 前两个月亏损第三个月盈利所得税怎么计算
  • apple mac 系统
  • 怎样结转销售成本会计分录
  • 购买固定资产发生的支出是资本性支出
  • 固定资产报废怎么处理
  • vue blob下载文件
  • php字符串型数据的定义方式
  • windows10记事本
  • 企业清算所得税申报
  • 公司员工意外险,死亡能赔多少钱
  • 辞退补偿款怎么算
  • 简述php中常用魔术方法及其各自的作用
  • php怎么传递参数
  • js轮播图实现思路
  • php获取flag
  • php数据查询
  • 消费积分如何做账
  • 收到上市公司分红企业所得税减半征收的情景
  • 日常费用报销表格
  • Vite + Vue2 + Vuetify2 + <script setup> + TypeScript 搭配开发项目
  • mongodb项目使用说明
  • sqlserver2008r2怎么使用
  • 存货和固定资产一经计提减值以后期间不得转回
  • 个人所得税中的速算扣除数是什么意思
  • 企业哪些情况下需要交税
  • 企业专利权拥有人是指
  • 房屋租赁不开发票需要交税吗
  • 搬迁补偿款的会计分录
  • 施工审图费计入什么科目
  • 未分配利润为负代表什么
  • 关于母子公司的关系的表述,正确的是( )
  • 股权激励费用如何计提
  • 坏账准备具有什么功能
  • 广告发布费属于什么费用
  • centos 命令
  • win10有没有语音输入
  • xp系统 控制面板
  • centos6.9开启ssh服务
  • win7安装office2010错误1935
  • 让mac桌面变整洁的方法
  • compaq-rba.exe是哪个方面的进程 作用是什么 compaq-rba进程查询
  • 查看linux系统日志命令
  • hpz12进程
  • win8应用商店在哪
  • win8和win10双系统安装教程
  • javascript如何定义变量
  • python 堆叠
  • angular nz
  • js中math.pow
  • lru缓存机制是什么
  • 浅谈一下新冠的好处
  • linux 打包
  • scp命令详解(全)
  • js的异步解决方案有哪些
  • 房产原值包括哪些内容
  • 高速公路通行费的税率
  • 江苏医保给家人用怎么操作
  • 增值税电子普通发票和普通发票区别
  • 严守纪律守规矩
  • 杜蕾斯验证真伪扫描
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设