QT程序怎么移植到開發(fā)板并運(yùn)行?
需要的條件:
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的庫(kù)!執(zhí)行filehello可以查看hello是否是arm下運(yùn)行的程序!
2.移植好QT庫(kù)的開發(fā)板 剛開始學(xué),只需要移植最基本的幾個(gè)庫(kù)就行了!觸摸屏的、鼠標(biāo)的、鍵盤的以后再說!分別是:libQtGui.solibQtCore.solibQtNetwork.so以及fonts下的字庫(kù) 為了防止錯(cuò)誤,我一并把他們的相關(guān)鏈接文件so.4、so.4.7、so.4.7.2都移植過去了! 移植方法你可以使用nfs!U盤!我用nfs速度太慢,非常不方便,索性用U盤拷過去了!因?yàn)檫@幾個(gè)庫(kù)小的不到1M,大的13M,U盤拷的還是很快的!比較讓我費(fèi)勁的是虛擬機(jī)不支持把鏈接文件拖拽到xp環(huán)境下!我只要在虛擬機(jī)里用郵件發(fā)到我的郵箱里,再在xp環(huán)境下把這些東西下下來,再通過U盤拷貝!曲折啊。。。我的虛擬機(jī)U盤不識(shí)別! 1)從哪兒移植呢? 從你虛擬機(jī)里編譯安裝arm版的QT庫(kù)里面拷!..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里面,把字庫(kù)放到fonts里面!
3.最重要的一步,設(shè)置環(huán)境變量! 在開發(fā)板的根目錄下執(zhí)行: $vi/etc/profile 然后輸入 exportQTDIR=/home/fengchao/qtenv/arm exportPATH=$QTDIR/bin:$PATH exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 保存退出!ok! vi使用:打開文件之后,輸入i,進(jìn)入編輯模式,再按ESC退出編輯模式進(jìn)入命令模式,輸入:鍵入命令wq即保存退出,q退出
4.然后把你編譯好的hello這個(gè)可執(zhí)行文件放到你的開發(fā)板上,隨便哪兒吧 然后執(zhí)行 ./hello-qws 然后你就可以看見開發(fā)板上有顯示了!但是可能文字較小,如果有中文可能還是亂碼,沒事,咱一步步往下來。。。
5.錯(cuò)誤分析 1)提示沒有鏈接到字庫(kù) QFontDatabase:Cannotfindfontdirectory/home/fengchao/qtenv/arm/lib/fonts-isQtinstalledcorrectly? 這個(gè)就是你沒裝好字庫(kù),好好檢查一下,修改過來! 2)提示沒有QtGui.sonosuchfileofdirectory 也是因?yàn)槟銢]有移植好這個(gè)庫(kù)或者跟他鏈接的文件,再或者環(huán)境變量有誤!