編譯環(huán)境和交叉編譯環(huán)境的搭建
qt版本4.8.6 opencv版本2.4.5
Host編譯環(huán)境:
zybo上跑的是xillybus的xillinux版本的ubuntu,參考的一個(gè)日語的教程安裝的opencv和qt。直接使用的apt-get 命令安裝的,zybo板子上已經(jīng)安裝了arm-linux-gnueabihf-的編譯環(huán)境,hf是用到了硬件浮點(diǎn),應(yīng)該在效率上高一些吧命令如下
apt-get install gcc-arm-linux-gnueabihf
apt-get install g++-arm-linux-gnueabihf
在xillinux 的終端下跑如下命令安裝qt
apt-get install qt4-dev-tools #開發(fā)包
apt-get install qtcreator #IDE
apt-get install qt4-doc #文檔
opencv庫
apt-get install libopencv-dev
這樣在板子上就能直接運(yùn)行qtcreator編譯qt和opencv的程序了,具體的qt調(diào)用opencv庫的方法很簡單這就不說了
注意:host編譯出來的是桌面圖形的qt程序,一般交叉編譯的在arm板子上用的都是qws界面,而且host的性能肯定沒有pc的性能好,編譯個(gè)程序都要好長時(shí)間,于是在pc端上搭建交叉編譯環(huán)境。
PC交叉編譯環(huán)境:
既然已經(jīng)能再zybo上編譯了,相應(yīng)的庫在zybo下都有了,想著交叉編譯環(huán)境應(yīng)該很容易,想把板子上的文件直接拷到PC上看看能不能用,于是把zybo里的qmake 和opencv的動(dòng)態(tài)鏈接文件都拷到了PC端,在qtcreator上做kit的時(shí)候發(fā)現(xiàn)qmake 不能解析哈。。。
還是要重新交叉編譯遍qt的。。。在PC端裝好arm-linux-gnueabihf-的編譯器,在qt的源碼目錄下configure,這個(gè)是參考的之前交叉編譯的配置:
./configure -embedded armv7 -xplatform qws/linux-arm-gnueabi-g++ -little-endian -opensource -host-little-endian -confirm-license -nomake demos -nomake examples -no-pch -prefix /usr/local/qt-arm
很簡潔哈make和make install 后(竟然沒錯(cuò)誤 哈哈 rp。。。)注:事先要改好linux-arm-gnueabi-g++文件里的內(nèi)容
然后把opencv的.so文件拷到和arm板子上位置相同的路徑里,把在板子上編譯過的程序源碼放到pc端編譯了下,(板子上的程序用到了opencv)opencv的動(dòng)態(tài)鏈接庫文件可以用~,但是提示gtk和gdk等等的動(dòng)態(tài)鏈接文件缺失,但是貌似這樣就不用再交叉編譯opencv啦,感覺這樣輕松不少。對于提示缺少的一些.so文件,找了找那些文件的位置發(fā)現(xiàn)都是在板子“/lib/arm-linux-gnueabihf”,“/usr/lib/arm-linux-gnueabihf”路徑下,把這兩個(gè)文件夾拷到PC端對應(yīng)路徑下,再次編譯程序,沒報(bào)錯(cuò),把編譯好的程序拷到板子上設(shè)置好qws的環(huán)境變量能夠正常運(yùn)行。