OpenCV学习之路–5–OpenCV3.4.10的ARM版本移植到开发板

2022-11-04 15:17:48 浏览数 (1)

开发板:迅为IMX6Q

移植QTE5.7

编译好的ARM版本OpenCV3.4.10文件:OpenCV3.4.10 ARM版

编译好的OpenCV依赖库文件:编译好的OpenCV ARM版 依赖库

1.将/usr/local/arm/opencv-arm/lib/下的库拷贝到开发板相同目录及/lib/下

代码语言:javascript复制
mkdir /home/topeet/iMX6Q/qt/usr/local/arm/opencv-arm

cd /usr/local/arm/opencv-arm/


cp -r * /home/topeet/iMX6Q/qt/usr/local/arm/opencv-arm/

cd lib/
cp -r * /home/topeet/iMX6Q/qt/lib/

2.拷贝 opencv-depend 下库到开发板/lib/下

代码语言:javascript复制
cd /usr/local/arm/arm-2014.05/arm-none-linux-gnueabi/opencv-depend/lib/

cp -r * /home/topeet/iMX6Q/qt/lib/

3.到此,移植就完成了,然后打包rootfs.tgz镜像烧录文件即可。

但是就如此简单的内容为何会单独列一章呢,因为在移植过程中会遇到一个问题:

/lib/libstdc .so.6: version `GLIBCXX_3.4.11′ not found (required by /lib/libopencv_core.so.3.4)

解决方法:

1.在ubuntu中使用

代码语言:javascript复制
find / -name "libstdc  .so*"

会出现好多文件,但是我们移植的时候需要注意:要移植ARM版本的。

拷贝高版本libstdc .so.6.0.19到开发板的lib/目录下

代码语言:javascript复制
cp /usr/local/arm/arm-2014.05/arm-none-linux-gnueabi/libc/usr/lib/libstdc  .so.6.0.19 /home/topeet/iMX6Q/qt/lib/

进入开发板的lib/目录下

代码语言:javascript复制
cd /home/topeet/iMX6Q/qt/lib/

删除原来的软连接

代码语言:javascript复制
rm -rf libstdc  .so.6

将默认库的软连接指向最新动态库

代码语言:javascript复制
ln -s libstdc  .so.6.0.19 libstdc  .so.6

检查动态库

代码语言:javascript复制
strings libstdc  .so.6 | grep GLIBC

注意:如果移植成x86-64版本的libstdc .so.6.0.21会出现下面的错误

error while loading shared libraries: libstdc .so.6: wrong ELF class: ELFCLASS64

原因是开发板运行ARM版本的,结果使用的是x86-64版本的。

只需要重新把ARM版本的libstdc .so.6.0.19移植过来并建立软连接即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182101.html原文链接:https://javaforall.cn

0 人点赞