Opencv(C++)学习 之RV1126平台的OPENCV交叉编译

本文特点:在线上资源中,已有诸多关于OpenCV移植至RV1106平台的文章分享。本文核心聚焦于使用cmake-gui进行编译时遭遇的各类报错现象,详细记录了解决这些编译错误的策略与步骤,并在此基础上对相关配置选项的关键知识点进行了简洁提炼和总结。

一、环境
ubuntu18 x64
RV1126交叉编译工具链
cmak v3.10
opencv4.7

二、编译方式概述: 采用 cmake-gui + Specify options for cross-compiling
尽管一些文章声称这种方法难以奏效,但实际上它完全可行。本节将直接呈现基于正确配置的完整流程概述,并在后续内容中列举出因缺失这些关键配置步骤而可能引发的各种错误示例,以供参考和对照。

三、编译过程:

1、下载opencv源码解压,安装并打开cmake.

2、修改Opencv中cmake/OpenCVDetectCXXCompiler.cmake 文件,在首行添加 set(CMAKE_SYSTEM_PROCESSOR “arm”) 语句(后文再讲为什么)
修改OpenCVDetectCXXCompiler.cmake
3、打开cmake-gui 按如下要求选项进行配置
在这里插入图片描述
在这里插入图片描述
Operating System / Version/Processor 这三者只有 VersIon需要定义,因为上文我们修改过OpenCVDetectCXXCompiler.cmake 所以 Processor 可选择性填写。

点击完成后 ,相关配置就改好了。再点击Generate之前,需要再配置下安装路径,也方便后面好取用库。
在这里插入图片描述

这里取消掉Test相关编译 ,Test耗时,我也用不到。
在这里插入图片描述
本文是C++,所以取消python和JAVA编译

在这里插入图片描述
在这里插入图片描述
4、再次点击Configure 完成后点击Generate
成功生成
在这里插入图片描述
.

四、编译测试
进入之前配置的 build_RV1126TEST 文件夹,直接make -j8
在这里插入图片描述
确认正常编译100%后,再make install
即可在之前配置的路径下找到打包好的头文件和库。
在这里插入图片描述
.
.
.
.
.
.

五、配置分析:
1、前文讲在cmake/OpenCVDetectCXXCompiler.cmake 文件,在首行添加 set(CMAKE_SYSTEM_PROCESSOR “arm”) 。这里我们先看下另一个文件的内容

/media/opencv/opencv-4.7.0/build_RV1126TEST/CMakeFiles/3.10.2/CMakeSystem.cmake

在这里插入图片描述
该CMake配置文件是由CMake图形用户界面(cmake-gui)工具自动生成的,其中上半部分详述了宿主机Ubuntu系统的相关属性信息,而下半部分则涉及目标平台RV1126的关键配置项。值得注意的是,在生成的配置中,CMAKE_SYSTEM_PROCESSOR变量未得到正确设定,其值为空,这一点与我们先前预期为RV1126架构进行的交叉编译配置有所出入。

由于CMAKE_SYSTEM_PROCESSOR这一核心变量未能识别出目标处理器架构,OpenCV在后续的编译阶段将无法针对性地进行适配配置,从而可能导致一系列与架构相关的编译错误发生。

因此,为确保OpenCV能够顺利无误地针对RV1126平台进行编译,我们在OpenCVDetectCXXCompiler.cmake文件中采取了手动干预措施,直接将CMAKE_SYSTEM_PROCESSOR变量明确赋值为“arm”——这是RV1126平台所采用的处理器架构。需要强调的是,对于不同平台而言,CMAKE_SYSTEM_PROCESSOR的定义应相应调整;OpenCV支持多种平台,并且在OpenCVDetectCXXCompiler.cmake中的相关判断区域内可以找到对不同架构的支持情况。通过这种方式修正后,后续的编译流程得以平稳推进并成功完成。

ps:若本文有幸获得读者关注,敬请不吝赐教。我将抽空进一步撰写关于OPENMP与TBB的联合编译过程及其在RV1126平台上实际测试效果的分析报告。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对RV1126芯片的开发,可以使用交叉编译来编译和安装OpenCV库。首先,在Ubuntu上安装RV1126交叉编译工具链,并下载并解压OpenCV源码,然后根据需要修改arm-gnueabi.toolchain.cmake配置文件。可以根据个人需求选择不同的OpenCV版本进行下载和配置。 移植SQLite3和OpenCVRV1126开发板上是一个常见的开发任务,比如在开发人脸识别项目时可能会用到。在移植过程中,可能需要考虑一些额外的步骤和配置,具体可以参考相关的教程和文档。 总结来说,针对RV1126芯片,可以通过交叉编译来编译和安装OpenCV库,并根据需要进行一些配置和修改。同时,移植SQLite3和OpenCVRV1126开发板上也需要参考相应的教程和文档,以确保项目的顺利进行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Rockchip RV1126上实现人脸检测------blazeface](https://blog.csdn.net/u013171226/article/details/123552954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ubuntu交叉编译opencv](https://blog.csdn.net/u013171226/article/details/120825584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值