开发板:迅为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