项目需求,交叉编译opencv2.3.1,并移植到mini2440中,现将本人的心得与过程中的错误分享如下,希望对大家有所帮助。注意:在opencv2.0以上的版本编译都要借助于cmake工具生成Makefile,2.0一下版本一般都是使用./configure生成Makefile。
一、开发环境
上位机:Fedora9.0
交叉编译器:arm-linux-gcc4.4.3(友善之臂提供)
cmake-2.8.7-Linux-i386.sh
二、安装交叉编译工具链
本人安装目录为:/opt/toolchain/4.4.3
添加环境变量:在PATH环境变量中添加交叉编译工具链的bin路径:/opt/toolchain/4.4.3/bin (大家根据自己的安装路径而定)
三、安装cmake
在Linux下也有cmake的GUI版本,我使用的版本如上文提到的,大家可以在网上搜索下,有很多的下载链接。
安装步骤:在linux系统中修改cmake-2.8.7-Linux-i386.sh的执行权限
[root@localhost opt]# chmod +x cmake-2.8.7-Linux-i386.sh (修改为可执行权限)
执行cmake-2.8.7-Linux-i386.sh:
[root@localhost opt]# ./cmake-2.8.7-Linux-i386.sh
回车后在就会在当前目录下解压出cmake-2.8.7-Linux-i386文件夹,进入文件夹:
[root@localhost opt]# cd cmake-2.8.7-Linux-i386
可以发现目录下bin、include等目录,进入bin目录:
[root@localhost cmake-2.8.7-Linux-i386]# cd bin
可以发现bin目录下有cmake-gui、cmake、ccmake等可执行文件
在Linux图形界面下,执行cmake-gui文件:
[root@localhost bin]# ./cmake-gui
出现如下界面:
选择源代码目录:/opt/OpenCV-2.31
选择Build目录:/opt/opencv2.3.1_forArm,大家根据自己的喜好设置编译目录吧。
点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-compiling,点击Next
Operating System填写arm-inux
C Compilers填写/opt/toolchain/4.4.3/bin/arm-linux-gcc
C++ Compilers填写/opt/toolchain/4.4.3/bin/bin/arm-linux-g++
程序库的Target Root填写/opt/toolchain/4.4.3/bin/,然后点击Finish,如下图:
上面标注的表示opencv将要安装的目录,默认为/usr/local,为了便于管理,大家可以安装在自己设定的目录下,可以修改,同时,网上资料说:另外,我没有安装tiff图像的支持,因此去掉WITH_TIFF(出自:)。但是我没有这么做。在此点击Configure,然后点击Gennerate就会生成Makefile。