項目需求,交叉編譯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(出自:http://blog.csdn.net/eagelangel/article/details/7232364)。但是我沒有這麼做。在此點擊Configure,然後點擊Gennerate就會生成Makefile。