继上次生成了ARM架构的链接库之后,我们要把他们拷贝到装载有文件系统的SD卡中即可,在拷贝时,最好是/usr/lib下

实践一:将那些lib拷贝到U盘里面,因为之前跑过demo,里面就是一个简易的linux系统,就暂且用他试试了,正常启动后,挂载U盘,这些在之前都有做过,mount /dev/sda1 /mnt拷贝文件夹 cp -R /mnt/lib /usr/ 结果出现

提示空间不足,仔细发现问题,发现这个ramdisk镜像最大只能有8M,而整个lib有10.3M,肯定会提示空间不足了,在看看/usr/lib下有哪些文件

发现拷贝了一些lib文件进来。这时就想到了实践二的方法、。

疑问:然后还有一个就是书上的一句话,如果你使用的是ramdisk文件系统,则需要在拷贝完Opencv链接库之后需要重新压缩出一个镜像文件。(有待解决这个问题)

问题解释:来自于rainysky,用的系统是SD自带的那个精简版的系统,容量比较小,没法直接将编译的文件复制到里面,只能做一个镜像啦。

实践二:想利用单板机(光盘中第九章有)中的文件来实验一下,单板机的系统时linaro的系统,之前有一个sd卡已经做好了分区,在windows下只能读出第一个分区,第二个分区在windows下是读不出来的。将BOOT.BIN,zImage,devicetree.dtb,zynq-zed-adv7511.dtb拷贝到第一个分区,也就是FAT分区。将ubuntu-image.tar.gz在linux下拷贝到EXT4分区,但是结果发现这个系统时不能正常启动的,是否是因为需要PC的外设才能正常启动??(有待验证),现在只能是制作镜像了。

实践三:

制作镜像的方法:OpenCV库:

dd if=/dev/zero of=qt_lib.img bs=1M count=80//这里的count与bs组合起来表示制作80M的镜像,具体可以根据实际链接库总的大小来设置count

mkfs.ext2 -F cv_lib.img

chmod go+w cv_lib.img

mount cv_lib.img -o loop /mnt

//cp -rf $ZYNQ_QT_INSTALL/* /mnt (看你的安装的路径,我的是下面的)

cp –rf /home/xzy/Opencv2.3.1/install/* /mnt

chmod go-w cv_lib.imgumount /mntZedboard

测试注意交叉编辑器编译代码时要用-I 和-L来指定链接库的位置。等下帖过来 arm-xilinx-linux-gnueabi-g++ -I /home/xzy/opencv-2.3.1/install/include -I /home/xzy/Opencv2.3.1/install/include/opencv –L /home/xzy/Opencv2.3.1/nstall/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann ./edge_detection.cpp -o ./edge_detection.o

这里使用的是书上的edge_detection.cpp。

拷贝到sd卡就可以了,然后sd卡启动linux之后,进行如下操作:

mount /dev/mmcblk0p1 /mnt/ //挂载sd卡其他部分的东西,

ls可以看到镜像文件

mount /mnt/cv_lib.img /choose/a/directory/to/mount//接着下来设置动态链接库的路径,即LD_LIBRARY_PATH环境变量export LD_LIBRARY_PATH=/usr/lib 如果是这个路径(/usr/lib)就不用了,会自己搜索。

前面都设置好了,运行的时候结果出现error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory,经查证,如果用这个镜像运行的话,会出现一个问题,就是在运行的时候找不到stdc++.so这个库,因此需要先将这个库copy到/home/xzy/opencv-2.3.1/install/lib,源文件在交叉编译器里面,总的命令为:cp /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /home/xzy/opencv-2.3.1/install/lib)

然后重新制作镜像文件。或者将这个库挂载到/usr/lib目录下也是可以的。我这里重新制作镜像文件,搞定之后,挂载,运行./edge_detection_arm lena.jpg lena_edge.jpg结果出现的是Segmentation fault,怀疑是图片格式的问题,换成了bmp图像以后,./edge_detection.o ./lena.bmp ./lena_edge.bmp,出现的是sucessful,我就知道成功了,将生成的图片copy到U盘,到pc机上一看 至此,opencv移植到zedboard上是成功了。

zedboard--Opencv移植和zedboard测试(十一)的更多相关文章

  1. zedboard OPENCV移植

    1:系统环境搭建 要准备好交叉编译环境 见http://blog.csdn.net/xiabodan/article/details/22717175 2:下载cmake CMake是一个跨平台的安装 ...

  2. zedboard上移植OPENCV库

    zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...

  3. Android平台下OpenCV移植与使用---基于C/C++

    在<Android Studio增加NDK代码编译支持--Mac环境>和<Mac平台下Opencv开发环境搭建>两篇文章中,介绍了如何使用NDK环境和Opencv环境搭建与测试 ...

  4. opencv 移植

    1.ubunut系统搭建opencv+python开发环境 1.1.ubuntu系统安装pip3工具 sudo apt-get install python3-pip //安装python模块安装工具 ...

  5. Qt 5.8 移植编译、测试

    /****************************************************************************** * Qt 5.8 移植编译.测试 * 说 ...

  6. 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏

    制作运行库 由于ubuntu的Qt运行库在/usr/local/Trolltech/Qt-4.7.3/下,由makefile可以看到引用运行库是 INCPATH = -I/usr//mkspecs/d ...

  7. 移植opencv库到zedboard(制作运行库镜像) 分类: OpenCV ZedBoard ubuntu shell Eye_Detection 2014-11-08 18:48 172人阅读 评论(0) 收藏

    主要参考rainysky的博客 http://ledage.eefocus.com/sj229335457/blog/13-06/295352_ad954.html opencv的话只需要将lib这个 ...

  8. zedboard--交叉编译Opencv库的生成 分类: shell ubuntu fool_tree的笔记本 ZedBoard OpenCV 2014-11-08 18:57 171人阅读 评论(0) 收藏

    Opencv的移植,xzyfeixiang和rainysky的博客. 第一步肯定是下载opencv的源码包 第二步已经做好的交叉编译环境. 第三步下载安装cmake   apt-get install ...

  9. OpenCV与QT联合编译 分类: Eye_Detection ZedBoard OpenCV shell ubuntu 2014-11-08 18:54 143人阅读 评论(0) 收藏

    问题1:首先参考rainysky的博客,发现qmake时发生找不到目录,文件的错误,又找不到 qmake.conf 文件的写法.所以开始按照网上的程序修改 XXX.pro 文件. 问题2:使用QT C ...

随机推荐

  1. 二分-poj-3685-Matrix

    题目链接: http://poj.org/problem?id=3685 题目大意: 有n*n的矩阵,第i行第j列的数为Aij= i2 + 100000 × i + j2 - 100000 × j + ...

  2. linux shell在while中用read从键盘输入

    系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功.由于Stream只有32bit,安装Stream时也安装了大量32bit的库.删除Stream后,这些 ...

  3. 在Servlet中使用spring注入的bean

    package abu.csdn.servlet;    import java.io.IOException;    import javax.servlet.ServletContext;    ...

  4. Linux RAR 安装和使用详细说明

    描述:Linux默认自带ZIP压缩,最大支持4GB压缩,RAR的压缩比大于4GB.  流程:下载 >安装 > 使用  ----------------------------------- ...

  5. Unity怎样在Editor下运行协程(coroutine)

    在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...

  6. jQuery.extend 和 jQuery.fn.extend

    1.jQuery.extend 我们先把jQuery看成了一个类,这样好理解一些.jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑 ...

  7. SDK命令行操作

    * 使用前需要先在path中添加Android SDK的环境变量,跟Java JDK的配置相同 我当前目录如下:F:\Program\Android SDK\tools:F:\Program\Andr ...

  8. MySQL复制协议

    http://hamilton.duapp.com/detail?articleId=27

  9. 静态方法中不能new内部类的实体对象

    原因如下: 1.内部类可以访问外部类的成员变量 2.对象创建完成后对象的成员变量才会被分配空间 3.main的静态方法执行时可以不存在外部类,不创建实体对象 4.内部类能访问成员变量意味着一定存在外部 ...

  10. avalon学习笔记一 列表及条件过滤

    好长时间都没有更新博客了,不是因为没有学习新的东西,而是到了新的单位每天玩命加班实在是太累了!经过一年的努力吧,终于可以轻松一下了.废话少说,直接干货吧! 由于是学习阶段,就直接拿了公司的二级页面做了 ...