位置: 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)(圣保罗大教堂是什么教)

  • 如何绑定银行卡在微信上(如何绑定银行卡在手机上)

    如何绑定银行卡在微信上(如何绑定银行卡在手机上)

  • airpods pro调音量(airpods pro调音量快捷指令)

    airpods pro调音量(airpods pro调音量快捷指令)

  • md788zp/a是什么型号(md788b/a是什么型号)

    md788zp/a是什么型号(md788b/a是什么型号)

  • 微信发朋友圈只发文字怎么发(微信发朋友圈只允许一个人看,对方会知道吗)

    微信发朋友圈只发文字怎么发(微信发朋友圈只允许一个人看,对方会知道吗)

  • 耳机寿命是多久(耳机寿命一般多久)

    耳机寿命是多久(耳机寿命一般多久)

  • 快捷粘贴是ctrl加什么(快捷粘贴是什么)

    快捷粘贴是ctrl加什么(快捷粘贴是什么)

  • 淘宝揽收超时怎么处理(淘宝揽收超时怎么赔付)

    淘宝揽收超时怎么处理(淘宝揽收超时怎么赔付)

  • 手机无缘无故没信号(手机无缘无故没信号重启都没用)

    手机无缘无故没信号(手机无缘无故没信号重启都没用)

  • 华为nova2plus是哪年上市的(华为nova2plus是5g手机吗)

    华为nova2plus是哪年上市的(华为nova2plus是5g手机吗)

  • 微信群怎么发10分钟视频(微信群怎么发10个红包)

    微信群怎么发10分钟视频(微信群怎么发10个红包)

  • 电加热管有哪几种(电加热管是什么材质)

    电加热管有哪几种(电加热管是什么材质)

  • 苹果无id锁是什么意思(什么是无id锁)

    苹果无id锁是什么意思(什么是无id锁)

  • 小爱同学是什么手机的语音助手

    小爱同学是什么手机的语音助手

  • 小米手机勿扰模式在哪(小米手机勿扰模式老是自动开启)

    小米手机勿扰模式在哪(小米手机勿扰模式老是自动开启)

  • itunes怎么注销(itunes怎么注销账号)

    itunes怎么注销(itunes怎么注销账号)

  • 咸鱼怎么开通卖家保障(咸鱼怎么开通卖酒的功能)

    咸鱼怎么开通卖家保障(咸鱼怎么开通卖酒的功能)

  • 手机抖音怎么删除作品(手机抖音怎么删除关注)

    手机抖音怎么删除作品(手机抖音怎么删除关注)

  • 华为手机怎么设置铃声(华为手机怎么设置青少年模式)

    华为手机怎么设置铃声(华为手机怎么设置青少年模式)

  • 苹果11打字声音怎么设置(苹果11打字声音忽大忽小怎么回事)

    苹果11打字声音怎么设置(苹果11打字声音忽大忽小怎么回事)

  • 抖音注销后别人知道吗(抖音注销后别人还能搜索到你吗)

    抖音注销后别人知道吗(抖音注销后别人还能搜索到你吗)

  • 剪映怎么自动添加歌词(剪映怎么自动添加转场)

    剪映怎么自动添加歌词(剪映怎么自动添加转场)

  • 图片怎么重新命名(图片重新命名怎么弄)

    图片怎么重新命名(图片重新命名怎么弄)

  • oppoa9手机支持呼吸灯吗(oppoa9手机呼叫限制怎么解除)

    oppoa9手机支持呼吸灯吗(oppoa9手机呼叫限制怎么解除)

  • ipad可以编程c语言吗(ipad能用c语言编程软件)

    ipad可以编程c语言吗(ipad能用c语言编程软件)

  • 箱线图怎么判断偏态(箱线图怎么判断分布)

    箱线图怎么判断偏态(箱线图怎么判断分布)

  • 蚂蚁森林芒种哪里来的(蚂蚁森林芒果树)

    蚂蚁森林芒种哪里来的(蚂蚁森林芒果树)

  • mac文件夹怎么重命名?苹果电脑文件夹重命名快捷键(mac book air文件夹怎么重命名)

    mac文件夹怎么重命名?苹果电脑文件夹重命名快捷键(mac book air文件夹怎么重命名)

  • 一般纳税人转为小规模纳税人
  • 企业所得税亏损弥补的规定
  • 税负转嫁的概念是什么
  • 含税销售额换算成不含税销售额的公式是什么?
  • 捐赠资产管理办法
  • 档案室图书应该做哪个会计科目
  • 运输货车折旧计算公式
  • 收到税收返还的会计处理
  • 其他应付款是不是长期负债
  • 财务月末结转成什么账户
  • 公司采购报销没发票
  • 支票结算的账务处理
  • 应付职工薪酬账务处理例题
  • 境内货代公司之间付美金
  • 建筑资质挂靠费用怎么写会计分录?
  • 医院业务支出包括哪些内容科目
  • 土地租赁费含有多少税率
  • 跨年成本发票红冲怎么做会计分录
  • 申报文化事业建设费
  • 公司员工出差补贴与差旅费报销制度
  • 企业残疾人保障金
  • 已经提完折旧的固定资产报废
  • 企业技术中心认定专精特新
  • 哪些税金计入存货成本
  • 限额领料单是一种多次使用的
  • 背书转让银行承兑汇票会计分录
  • 建账时的库存怎么做账
  • win10预安装环境
  • windows预览版dev和beta
  • 直接人工分配按计时工资怎么分
  • bios中怎么设置显卡
  • mcdlc.exe - mcdlc是什么进程文件 有何作用
  • 企业的民间借贷合法吗
  • win10dev预览版
  • element-ui表格
  • 生产企业的成本有哪些
  • thinkphp框架怎么用
  • php数组排列组合
  • 持有至到期投资账务处理
  • 通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容
  • php教程从入门到精通
  • hostnamectl命令
  • tr命令详解
  • 应付职工薪酬如何确认
  • 进项税额转出需要补税
  • 营业外支出明细账
  • 增值税申报销项发票采集少了怎么办
  • 一般纳税人怎么转为小规模纳税人
  • 帝国cms视频教程
  • 购买牵引车和挂车购车流程
  • 小规模都是做季报吗
  • 溢价收购公司会计处理
  • mysql all
  • 工程赔付款属于什么科目
  • 交易性金融资产的账务处理
  • 电子承兑 背书
  • 诉讼费应计入什么会计科目
  • 每月需要计提的分录
  • 货款已付对方不发货的案例分析
  • 明细账要如何做账
  • 怎么打开设置管理
  • 出售短期债券投资发生的净损失计入哪里
  • 轻松玩转职场职场沟通与写作技巧答案
  • ubuntu 16.04.6安装教程
  • winpe安装步骤
  • ubuntu 20.04拨号上网
  • 让xp系统自动修复软件
  • windows累积更新失败怎么办
  • win7怎么样激活
  • 微软星期二补丁
  • linux克隆虚拟机
  • nodejs入门教程
  • python pickle 保存
  • Node.js中的什么模块是用于处理文件和目录的
  • python,for循环
  • jquery选择器总结
  • 辽宁省财政局会计网
  • 内蒙古国税局官网
  • 招投标法实施条例是哪一年修正的
  • 道路坡度最大限度不超过多少度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设