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

  • 出口退税便捷退税操作流程
  • 股票印花税如何计算
  • 购税盘需要什么东西
  • 软件企业认定流程
  • 开票和预缴税款跨月
  • 代收款需要开票吗
  • 执行企业会计准则类别是什么意思
  • 咨询服务费预收率怎么算
  • 金蝶专业版怎么增加一级科目
  • 一般纳税人转成小规模的条件
  • 工资及工资性支出
  • 小规模免增值税的账务处理
  • 出口退免税备案
  • 小规模未达起征点销售额是多少
  • 支付增值税税控系统技术维护费用500元
  • 购买旧固定资产的增值税进项税
  • 原材料进口关税怎么算
  • 存货盘盈属于什么活动
  • 城镇土地使用税纳税义务发生时间
  • 收到电子承兑汇票的账务处理
  • 公司向员工个人借款
  • 合伙企业需要交企业所得税吗?
  • 增值税普票未上传怎么办
  • 证券投资基金管理办法
  • 劳务派遣公司怎么赚钱
  • 兼营非应税劳务行为举例
  • 个税返还手续费增值税申报填在哪里
  • 购进电费管理费会计分录
  • 进项发票认证抵扣时间有限制吗
  • 贴现凭证的贴现银行是谁
  • 电子税务局如何查进项发票
  • 法人实名认证后没有绑定企业怎么办
  • 专业服务业政策
  • 销售费用营业费用的区别
  • 什么情况下增值税不能抵扣
  • 简易征收的分录
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • win11系统语言修改不了
  • window10玩吃鸡总崩溃
  • 未付款的增值税发票可以抵扣吗
  • php aop
  • git可以管理二进制文件吗
  • 缴纳住房公积金分录
  • 增资导致的股权稀释涉税吗
  • 公司车辆使用费用平均
  • 职工福利费的税收金额怎么填写
  • sessionn
  • tomcat-juli
  • 帝国cms手机模板是什么
  • 工程结算 增值税
  • 开发项目完工后多久开工
  • 长期借款主要包括哪些
  • 资金占用费怎么开票
  • 安装和使用蓄能器应注意哪些问题
  • 工业企业发生的各项费用
  • 净利润除以实收资本是什么
  • 退货开红字发票,已经交了消费税的怎么处理
  • odbc api
  • 公司账务不正规,账务外包的,财务助理有风险吗
  • 固定资产支付的保险费计入成本吗
  • 股东捐赠给企业怎么做账
  • 流动比率表示方法
  • 什么叫应纳税额六年级下册
  • 外购货物会计分录
  • 对公受托理财申购怎么写
  • 总公司与分公司的关系
  • 微信和支付宝的区别
  • 建筑企业结转收入成本
  • 合伙人工资薪金
  • 什么情况下可以不交物业费
  • 如何建立明细分类账
  • sqlserver数据库迁移至mysql
  • java.exe是指
  • u盘做pe后还能存储吗
  • win7开机提示音在哪里关闭
  • win10系统本地用户和组怎么添加
  • jquery层次选择器主要包括哪几种分类
  • unity2020怎么导入资源
  • iframe和frame
  • 一巩固三衔接
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设