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

开发板:迅为IMX6Q

移植QTE5.7

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

编译好的OpenCV依赖库文件:

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

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/下

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中使用

find / -name "libstdc++.so*"

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

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

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/目录下

cd /home/topeet/iMX6Q/qt/lib/

删除原来的软连接

rm -rf libstdc++.so.6

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

ln -s libstdc++.so.6.0.19 libstdc++.so.6

检查动态库

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移植过来并建立软连接即可。

猜你喜欢

转载自blog.csdn.net/qq_24253205/article/details/106841629
今日推荐