Linux Qt+opencv2.3.1在tiny6410上的移植


opencv新手,掙扎了兩天總算是移植成功了。成功解決一個問題時的喜悅,如果你已經很長時間沒有感受到了,那麼對不起,你已經老了。好了,感受在這咱就不多說了,現在切入正題。


linux環境:Fedora9

arm開發板:tiny6410

交叉編譯器:cmake2.8.12.2

opencv版本:2.3.1


opencv2.0版本以後就不再是用configure配置,可以是用cmake配置。網上碰到好多都是opencv2.0之前的,所以編譯用了好長時間,也碰到了好多問題,查了好多資料才解決。總結,對於初學者,千萬不要用最新版本的各種軟件,不然編譯起來網上找不到參考文檔會很痛苦,很痛苦!!!。

首先從官網裏下載cmake和opencv,arm-linux-gcc這裏咱就不多說了,我用的是FriendlARM Tiny6410光盤裏的,安裝也是按照光盤說明安裝的。

分別解壓cmake和opencv


交叉編譯opencv for pc


在 /opt/FriendlyARM/opencv下新建一個文件夾opencv-pc作爲cmake的工作目錄。打開cmake-gui。‘

where is the source code :/opt/FriendlyARM/opencv/opencv2.3.1(opencv所在目錄)  

where to the build binaries:/opt/FriendlyARM/opencv/opencv-pc

然後單擊configure,對話框填寫如下

next,下一個對話框不用管它,generate。然後終端進入opencv-pc,make,有一些錯誤,不用管它,

make install安裝opencv


耐心的等待吧,顏色挺好看的大笑大笑

opencv默認安裝在/usr/local。


安裝完後還需要:
添加庫路徑
#gedit /etc/ld.so.conf.d/opencv.conf
加入/usr/local/lib

更新系統庫
#ldconfig

設置環境變量
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

交叉編譯成功。在Qt4.7上測試。
.pro文件

由於還不知道的庫的功能,所以我把所有的庫都連接上了。

main.cpp


然後運行圖片就出來了大笑大笑


交叉編譯opencv for arm-linux

交叉編譯的過程與pc機相似
新建opencv-arm。懶得再截圖了,就複製了上一個。一定要把opencv-pc換成opencv-arm!!!



next,關鍵在這個對話框

arm-linux不用糾結,填上就行。當初我一看Operating System以爲需要與系統一致呢,其實不是。然後compilers分別填arm-linux-gcc和arm-linux-g++所在目錄。Target Root填的原先見得目錄。

Finish,然後修改CMAKE_INSTALL_PREFIX的目錄,因爲先前在pc機中已經把opencv安裝在了/usr/local,爲避免衝突,在此目錄下新建文件夾arm,選擇arm目錄



然後還要去掉WITH_TIFF的勾(勾上可能需要安裝一些東西),不然稍後編譯可能會出錯。之後configure、generate。

終端進入opencv-arm,然後make。如果不出意料的話你會出現這個問題

當時我就在這個問題卡了一天。此時應該

修改OpenCV-2.3.1/modules/flann/include/opencv2/flann/dist.h文件

在第63行的源碼:{ return fabsl(x); }改爲{ return fabs(x); }。



然後重新make。還會出現第二個問題大笑大笑



修改opencv_arm目錄下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原來爲空,加上-lpthread -lrt




再重新make一下,你懂得!這時應該就不會再出現問題。這個過程比剛纔還要漫長n倍。慢慢等待吧大笑大笑

完成之後執行make install就可以安裝了。安裝在 /usr/local/arm上哦。


具體Qt+opencv移植到開發板上我還沒用做。下次再更新。



苦逼的雙休日又這樣過去了。趕緊睡覺了。


如果你愛他,就讓他學計算機,因爲那裏是天堂;

如果你恨他,就讓他學計算機,因爲那裏是地獄。
























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章