opencv1.0移植到ARM+linux(TQ2440)

25 篇文章 0 订阅
20 篇文章 1 订阅

在OpenCV官网下载linux安装包:http://opencv.org/downloads.html,解压到/opt/EmbedSky/opencv下,然后cd进入解压文件夹。

解压目录下运行:

./configure --host=arm-linux --without-gtk --without-carbon --without-v4l --without-v4l2 --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --enable-shared --disable-apps CXX=arm-linux-g++ --prefix=/home/wudean/opencv-1.0.0/_install

注:

·         --host=arm-linux :指出交叉编译arm平台

·         --without-gtk:忽略gtk2.0 windows

·         --without-carbon: 不使用Mac OS上的X

·         --without-quicktime

·         --without-1394libs

·         --without-ffmpeg

·         --without-python

·         --without-swig

·         --without-v4l --without-v4l2:不需要v4lv4l2

·         --enable-static :生成静态库

·         --enable-shared:生成动态库,这一项必须要有,不要以后可能会出现加载动态库失败

·         CXX=arm-linux-g++ :指定编译工具(我用的是TQ提供的4.3.3

·         --prefix=/opt/EmbedSky/opencv/_install:这个是安装目录,最好是这样做,以免污染系统

OpenCV会用到一些dev的包,如png.h,jpeglib.h,所以需要预先交叉编译好zlib/png/jpeg库,把他们生成的*.h放到相应的交叉编译器的include里,*.so.*放到lib,还要拷贝到目标板的根目录的lib中。

特别要注意的:

如果在编译时出现png.h: No such file or directory ,意即缺少开发

make

注:make过程中可能出现

../../cxcore/include/cxmisc.h:133:6: error: #elif with no expression

打开cxmisc.h:#elif改为#else

如果在编译时出现png.h: No such file or directory ,意即缺少开发库,先交叉编译zlib/png/jpeg

 

make install

_install目录下回出现:include lib share 三个目录,这些是我们需要的。

 

修改_install/lib/pkgconfig/opencv.pcLibs项中加入参数-lpthread-ldl之类,例如

Libs: -L${libdir} -lcxcore -lcv -lhighgui -lcvaux -lml -lpthread -lz -lpng -ljpeg -ldl

 

修改PC主机的 /etc/bashrc 文件,在最后添加以下内容:

export  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/wudean/opencv-1.0.0/_install/lib/pkgconfig

 

重启电脑!!!

 

这样就可以交叉编译我们的应用程序:share/opencv/sample/c/里的例子:

arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`

arm-linux-g++ facedetect.c -o facedetect `pkg-config --cflags --libs opencv`

注:交叉编译的应用程序是不能再目标板上运行的,因为需要gtk的窗口库。

修改build_all.sh:把g++改为arm-linux-g++后就可以运行了。

 注意上面的··是Tab见上面的执行命令键(将··中命令执行的结果作为g++的参数)

PCLinux上安装也是一样:

但是,那些程序都可以编译,但是在运行时报错:
error:whiling loading shared libraries:libcxcore.so.l:can not open shared librarise:No such file or directory

解:將/usr/local/lib/  底下有關opencvlib全部複製到  /usr/lib 底下就可執行了!
To run with a parameter:

./facedetect --cascade="haarcascades/haarcascade_frontalface_alt.xml" baboon.jpg

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值