QT程序移植到開發(fā)板并運(yùn)行 解決方案
本文介紹的是QT程序怎么移植到開發(fā)板并運(yùn)行,對于移植這個(gè)問題,本人也在學(xué)習(xí)的過程中,所以找到一篇好文章與大家分享一下。廢話不多說,看內(nèi)容吧。
需要的條件:
1.上位機(jī)編譯好的可執(zhí)行文件,以hello為例
在虛擬機(jī)的ubuntu下,寫好代碼之后,定位到當(dāng)前目錄,執(zhí)行命令
- qmake -project //生成工程文件.pro
- qmake //生成makefile
- make //生成可執(zhí)行文件hello
注意這些命令是在arm版的qt環(huán)境下的編譯命令!執(zhí)行qmake -v可查看其是否是arm版本,使用的是否是arm的庫!執(zhí)行file hello 可以查看hello是否是arm下運(yùn)行的程序!
2.移植好QT庫的開發(fā)板
剛開始學(xué),只需要移植最基本的幾個(gè)庫就行了!觸摸屏的、鼠標(biāo)的、鍵盤的以后再說!分別是:libQtGui.so libQtCore.so libQtNetwork.so 以及fonts下的字庫
為了防止錯(cuò)誤,我一并把他們的相關(guān)鏈接文件so.4、 so.4.7、 so.4.7.2 都移植過去了!
移植方法你可以使用nfs !U盤!我用nfs速度太慢,非常不方便,索性用U盤拷過去了!因?yàn)檫@幾個(gè)庫小的不到1M,大的13M,U盤拷的還是很快的!比較讓我費(fèi)勁的是虛擬機(jī)不支持把鏈接文件拖拽到xp環(huán)境下!我只要在虛擬機(jī)里用郵件發(fā)到我的郵箱里,再在xp環(huán)境下把這些東西下下來,再通過U盤拷貝!曲折啊。。。我的虛擬機(jī)U盤不識別!
移植的幾種方法看這篇文章:http://blog.csdn.net/fengchao_2009/archive/2011/05/14/6419928.aspx
(1)從哪兒移植呢?
從你虛擬機(jī)里編譯安裝arm版的QT庫里面拷!..arm/lib下
(2)移植過去放在哪兒呢?
最好是跟你在虛擬機(jī)里面的arm版QT所在目錄一樣,方便操作!看我的
分別在開發(fā)板下新建目錄:
- home/fengchao/qtenv/arm/lib
- home/fengchao/qtenv/arm/bin
- home/fengchao/qtenv/arm/lib/fonts
把那些.so文件放到lib里面,把字庫放到fonts里面!
3.最重要的一步,設(shè)置環(huán)境變量!
在開發(fā)板的根目錄下執(zhí)行:
- vi /etc/profile
然后輸入
- export QTDIR=/home/fengchao/qtenv/arm
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
保存退出! ok !
vi使用:打開文件之后,輸入i,進(jìn)入編輯模式,再按ESC退出編輯模式進(jìn)入命令模式,輸入:鍵入命令wq即保存退出,q退出
4.然后把你編譯好的hello這個(gè)可執(zhí)行文件放到你的開發(fā)板上,隨便哪兒吧
- ./hello -qws
然后你就可以看見開發(fā)板上有顯示了!但是可能文字較小,如果有中文可能還是亂碼,沒事,咱一步步往下來。。。
5.錯(cuò)誤分析
(1)提示沒有鏈接到字庫
- QFontDatabase: Cannot find font directory /home/fengchao/qtenv/arm/lib/fonts - is Qt installed correctly?
這個(gè)就是你沒裝好字庫,好好檢查一下,修改過來!
(2)提示沒有QtGui.so no such file of directory
也是因?yàn)槟銢]有移植好這個(gè)庫或者跟他鏈接的文件,再或者環(huán)境變量有誤!
【編輯推薦】