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