opencv1.0移植到ARM+linux(TQ2440)
2013-07-24 21:35
447 查看
在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:忽略gtk+2.0 windows
·
--without-carbon: 不使用Mac OS上的X库
·
--without-quicktime
·
--without-1394libs
·
--without-ffmpeg
·
--without-python
·
--without-swig
·
--without-v4l --without-v4l2:不需要v4l和v4l2
·
--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.pc的Libs项中加入参数-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++的参数)
在PC上Linux上安装也是一样:
但是,那些程序都可以编译,但是在运行时报错:
error:whiling loading shared libraries:libcxcore.so.l:can not open shared librarise:No such file or directory
解:將/usr/local/lib/
底下有關opencv的lib全部複製到 /usr/lib
底下就可執行了!
To run with a parameter:
./facedetect --cascade="haarcascades/haarcascade_frontalface_alt.xml" baboon.jpg
在解压目录下运行:
./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:忽略gtk+2.0 windows
·
--without-carbon: 不使用Mac OS上的X库
·
--without-quicktime
·
--without-1394libs
·
--without-ffmpeg
·
--without-python
·
--without-swig
·
--without-v4l --without-v4l2:不需要v4l和v4l2
·
--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.pc的Libs项中加入参数-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++的参数)
在PC上Linux上安装也是一样:
但是,那些程序都可以编译,但是在运行时报错:
error:whiling loading shared libraries:libcxcore.so.l:can not open shared librarise:No such file or directory
解:將/usr/local/lib/
底下有關opencv的lib全部複製到 /usr/lib
底下就可執行了!
To run with a parameter:
./facedetect --cascade="haarcascades/haarcascade_frontalface_alt.xml" baboon.jpg
相关文章推荐
- 【ARM&Linux】TQ2440移植linux3.0笔记
- arm-linux-gcc-4.4.1+Linux-2.6.31.6+busybox-1.15.1在TQ2440的移植
- arm-linux-gcc 3.4.1 移植minigui1.3.3 转帖
- 通过ssh连接开发板——arm-linux下ssh的移植
- ARM-Linux移植攻略--yaffs2 Partially written block xxx detected 问题解决
- gdbserver调试工具移植到ARM Linux教程
- Qt4.7 arm-linux移植,屏幕旋转
- Qt5.5.0编译移植到Linux-Arm-A9
- 移植kvm-cldc1.1到arm-linux上心得
- ARM-LINUX下一些常用库的移植
- Ubuntu,TQ2440,arm-linux,Qt交叉编译环境配置
- 嵌入式开发远程调试arm-linux-gdb的移植
- 汇总(之三):交叉编译工具链arm-none-linux-gnueabi-, Qt交叉编译安装和移植,Qt桌面版编译安装,QTcreator安装和配置
- opencv1.0移植到arm中的问题
- 基于ARM的嵌入式Linux移植真实体验1-基本概念
- 移植 Nginx+PHP(FastCGI) 到 ARM Linux (二)
- ubuntu下arm-linux-gdb+JLinkGDBServer调试TQ2440
- ARM的嵌入式Linux移植体验之BootLoader
- QT 4.7.2 在ARM-Linux 下移植
- ARM-LINUX学习笔记-(虚拟机linux串口终端以及USB程序下载,基于TQ2440)