【ZYNQ_LINUX】zynq 上移植 opencv 代码

通过查找资料和网上的博客,zynq 上移植opencv 代码,可能需要以下几步,通常要先有 opencv代码,然后再有交叉编译出结果,但是这里会使用到一些opencv 的库,所以在zed 板上跑的时候首先要有opencv 的库镜像文件,然后挂载起来,然后才能真正的开始opencv 的测试。

我遇到的问题可能是由于整个过程中有不当之处导致的,和大家都不太一样。

首先查看以下开机以后 /usr/lib 的内容

【ZYNQ_LINUX】zynq 上移植 opencv 代码_第1张图片

一旦我们将 opencv_lib_img 挂载到 sd 卡的时候,

 mount /mnt/opencv_lib.img /usr

查看 /usr 和 lib 的内容:

【ZYNQ_LINUX】zynq 上移植 opencv 代码_第2张图片

执行命令  ./edge_detection.o ./lena.jpg ./lena_edge.jpg


./edge_detection.o: error while loading shared libraries: libstd
c++.so.6: cannot open shared object file: No such file or directory 

发现出错原因是有 没有 libstdc++.so.6,但是在没有挂opencv_lib_img 的时候它是存在的,只是现在被覆盖了

挂载到 /usr/lib 文件夹下

mount /mnt/opencv_lib.img /usr/lib

【ZYNQ_LINUX】zynq 上移植 opencv 代码_第3张图片

执行命令仍旧出错为 

zynq> ./edge_detection.o ./lena.jpg ./lena_edge.jpgrandom: nonblocking pool is initialized
Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!

参考的博客挂载之后

注意 uramdisk 的文件系统实际只有8M ,而opencv_lib.img 有80多M 


上面的问题描述的比较乱,但是主要的原因就是在 1 在opencv_img.lib 挂载位置和内容 2 是运行代码的命令

1 针对opencv_img.lib 挂载位置放在 /usr 文件夹下,使其opencv 的库文件在 /usr/lib 文件夹中

 mount opencv_img.lib /usr

http://www.eefocus.com/Moonwolf/blog/13-07/295984_84f9d.html

http://blog.csdn.net/dumeifang/article/details/2963223

http://www.aiuxian.com/article/p-310498.html

针对缺少 libstdc++.so.6 的问题,参考博客有三种解决方法,1 将 libstdc++.so.6 复制过去 2 建立软链接 3 重新制作 opencv_img.lib,制作过程中将 libstdc++.so.6 压缩进镜像文件,我用的第一种方法试是可以的。

2 测试 使用 ./edge_detection.o ./lena.bmp ./lena_edge.bmp 命令无反应,使用命令 ./edge_detection.o lena.bmp out.bmp 出结果。

你可能感兴趣的:(遇到的问题们,ZYNQ_LINUX,学习)