0
点赞
收藏
分享

微信扫一扫

51单片机 数码管操作

月孛星君 2023-09-25 阅读 39

在unbuntu20.04环境下编译opencv3.4.5,

在此环境下编译opencv4.5.4正常。

1. 编译时遇到的问题

(1)

make时用suod:     sudo make -j4

(2)

解决方法: 通过联系不断的执行make命令

3.

最后放弃在这个环境下编译这个opencv,因为考虑opencv3.4.5版本比较低,而这台电脑的cmake版本比较高,所以换了安装其他cmake低版本的电脑上编译。

2.换低版本cmake编译

vmware虚拟机上安装的ubuntu20上的环境为:

3. 编译的opencv的.a库是基于x86的,因为并不是用交叉编译工具编译的。

参考:编译出错Relocations in generic ELF (EM: 62)_丁香树下丁香花开的博客-CSDN博客

编译成功了.a静态库, 但是把这些库添加进工程的编译配置后,又出现如下问题

通过objdump命令查看opencv的.a库文件格式,  很奇怪的是它是x86-64格式的

而同样的命令查看rk官方给的examples/3rdparty/opencv/opencv-linux-aarch64/中的库文件,发现格式是 elf64-little的,初步判断我编译的opencv库并不是用通过交叉编译得到的。

4.交叉编译工具编译opencv

opencv库可以直接在RK3566上进行编译,也可以选择在自己的Ubuntu上交叉编译opencv,然后在RK3566上调用编译好的库文件

参考:RK3588移植 opencv交叉编译_rk3588交叉编译opencv3.4.1_Bugger99的博客-CSDN博客

(1)下载交叉编译工具

这里下载: gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu

Downloads | GNU-A Downloads – Arm Developer

下载后把它解压到一个指定的路径之下。后续编译的时候可以直接引用路径下的文件即可。

另一种方式是通过命令行来安装交叉编译工具:

https://www.cnblogs.com/TaXueWuYun/p/15075015.html

(2)opencv下载

Releases - OpenCV

(3)安装好cmake, 我的cmake 版本是  3.16.3

(4)编译的gcc环境配置

(5) 编译

进入build路径下:

键入:

自己操作过程中,如果没有加最后一项,make到30%进度,即一直不能顺利进行,出现乱七八糟的各种问题。

加上后-D CMAKE_SYSTEM_NAME=Linux  ,有可能在make过程中产生类似如下的错误:

解决方法是:

找到3rdparty/libpng/CMakeLists.txt
在最上面加上

SET(ARM 1)
SET(ENABLE_NEON 1)

重新cmake  && make ,然后成功(make过程中可能断掉,但没提示错误,多重新make几次即可)

举报

相关推荐

0 条评论