OpenCv 移植到Arm-linux

来源:互联网 发布:java画流程图工具 编辑:程序博客网 时间:2024/04/30 05:21

昨天,接到任务,将OpenCV移植到Arm板上。这个以前在学校也没接触过啊。于是上网找资料。很多流程都一样。

  1. 安装arm-linux-g++交叉编译器。
  2. 使用CMake生成Makefile.
  3. Make,生成头文件和库文件。
按照网上的步骤,很快就编译好了。奇怪的是,没有遇到任何问题,直接编译成功。着实让我高兴,但是将测试程序编译好后再Arm上去跑不起来,总提示libcv.so加载不上。网上找了好久没有答案。


然后想了一下, Arm板上本来就是Linux系统,为什么不直接在Arm板上编译呢?于是,我一怒之下,直接在Arm板上进行编译。


将显示器,键盘,U盘接到,Arm板上,走起。

  1. Arm上是纯命令行界面。我写的mount命令使用的文章刚好派上,哈哈,将U盘挂载在/mnt目录下。
  2. 使用CMake生成Makefile。不是cmake-gui,而是命令行的cmake。 cmake  /mnt/opencv-2.1.0
  3. make.。 好漫长的时间,足足4个小时,蛋都碎了。
  4. 在87%时,出现了错误。undefined reference to 'cvCreateCameraCapture_V4L(int)'。在网上发现很多人遇到该问题,OpenCV版本是2.2的。于是我照瓢画葫芦,在OpenCv2.1.0目录下/src/highgui目录下cvcap.cpp164行
     #if defined (HAVE_CAMV4L) || defined (HAVE_CAMV4L2)

    改为
     #if defined (HAVE_CAMV4L)
    同时修改cvcap_libv4l.cpp文件222行
    #include <linux/videodev.h>
    改为
    #ifdef HAV_CAM4L#include <libv4l1-videodev.h>#endif
    重新编译,搞定。
  5. 最后Make install。 头文件和库文件分别安装在/usr/local/include/opencv 和/usr/local/lib
  6. 测试,OpencV安装成功。

最后,列出编译环境。

OpenCv 2.1.0版本 

arm板上编译器: arm-linux-gnueabihf-g++

ARM linux版本: Debian GNU/Linux wheezy/sid raspberrypi2


原创粉丝点击