宿主系统:ubuntu9.04 交叉编译器版本:arm-linux-gcc-4.3.2
目标系统:linux kernel 2.6.3.2 硬件ARM-Cotex(AM3517)开发板
2012-11-2 重新编译时 : 目标系统 ubuntu_core linux version 3.0.0-1205-omap4 硬件:OMAP4460
我试过用arm-linux-gcc-4.3.3交叉编译opencv2.0结果总是出错,出错的内容见另一篇博文http://blog.youkuaiyun.com/dlutxie/article/details/6769200
由于opencv2.0依懒于png,jpeg图形库,而png又依懒于zlib库,所以应先安装交叉编译器,然后安装zlib,png,jpeg库,具体安装过程见上面的链接。
安装过程如下:
xgy@ubuntu:~/tmp$ tar xvf OpenCV-2.0.0.tar.bz2
xgy@ubuntu:~/tmp$ cd OpenCV-2.0.0/
xgy@ubuntu:~/tmp/OpenCV-2.0.0$ ./configure--host=arm-linux --without-gtk --without-carbon --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig--enable-shared --disable-apps CXX=arm-linux-g++ CPPFLAGS=-I/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/includeLDFLAGS=-L/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/libc/lib--prefix=/opt/arm/opencv --libdir=/opt/arm/opencv/lib --includedir=/opt/arm/opencv/include
产生的报告如下:
xgy@ubuntu:~/tmp/OpenCV-2.0.0$ make
xgy@ubuntu:~/tmp/OpenCV-2.0.0$ make install 执行后出现如下错误:
因为我这里要把opencv安装到/opt/arm/opencv下,而xgy用户对这个目录没有写板限,所以无法安装,于是我改用root用户执行make install结果出现同样的错误,这是因为root用户的PATH环境变量没有指向交叉编译器(我安装完交叉编译器后只设置了xgy用户的PATH环境变量),为此我将opt这个及其子目录设为任何用户均可写,命令如下:
root@ubuntu:/# chmod -R 777 /opt
然后切换到刚才的目录执行make install 如下:
root@ubuntu:/# su - xgy
xgy@ubuntu:~$ cd tmp/OpenCV-2.0.0/
xgy@ubuntu:~/tmp/OpenCV-2.0.0$ make install //这样就可以安装成功了
下面来设置环境变量,先更改一个文件名
xgy@ubuntu:~/tmp/OpenCV-2.0.0$ cd /opt/arm/opencv/lib/pkgconfig/
xgy@ubuntu:/opt/arm/opencv/lib/pkgconfig$ mv opencv.pc opencvarm.cp
因为在我的系统里已经安装了一个X86下的opencv库,在相似的目录下有一个opencv.pc文件,如果这里不改,这两个文件同名将有可能出错!(与PKG_CONFIG_PATH中设置的路径相关)
xgy@ubuntu:/opt/arm/opencv/lib/pkgconfig$ cd
xgy@ubuntu:~$ vi .bashrc
在最后加上export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/arm/opencv/lib/pkgconfig
切换到root用户,在/etc/ld.so.conf文件的最后加入:/opt/arm/opencv/lib或者在/et