Qt Creator 添加arm版本的qmake時的問題


 

好吧,吐血搞了三天,終於把這個問題解決了,菜鳥上不起呀!

問題:當QT Creator安裝好后,它的qmake只能生產在X86下的Makefile,這方便我們在電腦上調試,看效果。但當我們需要將編譯好的QT程序下載到開發板上運行時,這個生成的目標文件是無法在板子上執行的,因此我們需要添加arm版本的qmake,但當我用FriendlyARM提供的 target-qte-4.8.5-to-hostpc.tgz  解壓到根目錄下時,得到的qmake居然不是X86下可執行的程序(這應該是arm架構上的可執行程序),因此就只好自己吐血來編譯制作target-qte-4.8.5-to-devboard.tgz 和 target-qte-4.8.5-to-hostpc.tgz 這兩個包了!

第一步:將arm-qte-4.8.5-20131207.tar.gz解壓到某目錄下(我的是/opt/mini2440/arm-qte-4.8.5),得到如下幾個文件:

qt-everywhere-opensource-src-4.8.5 .tgz            build.sh            fond    mktarget

第二步:執行腳本程序build.sh

首先我們可以先執行vi build.sh,打開這個安裝腳本看一下里面的內容,如下:

image

可以看出,這個腳本的任務可分為清緩存、解壓安裝包、配置、編譯、安裝等幾個階段!

#sh build.sh

不幸的是,卻出現了以下問題:execvp:arm-linux-gcc:Too many levels of symbolic links

wpsDDEE.tmp

好吧,從這個報錯上可以看出,出錯是在make編譯階段,而從

execvp:arm-linux-gcc:Too many levels of symbolic links

可以看出,出錯的原因是在make時無法定位編譯器,這一點是從某外國網友的回答中得到的啟發:

http://stackoverflow.com/questions/7027740/makefile-and-symbolic-links/

因此,系統找不到我的編譯器目錄,那我們就可以在相應的配置文件里面添加詳細的編譯器目錄不久OK?

好吧,那在哪兒添加呢?我們知道,make時所依賴的文件是Makefile,因此,進入源碼文件夾,執行#vi Makefile 打開Makefile文件,在里面隨處可見這樣的編譯器定位語句(當然這個表述可能有問題):

image

OK,那么我們就找到相應的文件夾:

#cd  mkspecs/qws/linux-arm-g++

里面有兩個文件:

qmake.conf       qplatformdefs.h

很顯然,前一個便是qmake的編譯文件,用vi qmake.conf 打開它,可以看到如下的編譯器配置命令:

image

好吧,我們可以把上述換成自己所安裝的交叉編譯器的詳細路徑,如下:

image

這樣,咱們在編譯時就能夠找到編譯器的地址了,然后再會到安裝目錄重新執行

#sh build.sh

OK,現在可以成功編譯安裝了,但是,這個時間不是一般的長呀,我I5的處理器,從晚上的11點一直編譯到凌晨1點半,結果電腦沒電了,然后第二天早上系統自動恢復數據后繼續編譯了一個小時,額,我也是醉了!

好吧,現在可以執行mktarget命令制作目標板一起PC機上的安裝包了!

#./mktarget

得到兩個安裝包,target-qte-4.8.5-to-hostpc.tgz 和 target-qte-4.8.5-to-devboard.tgz

將target-qte-4.8.5-to-hostpc.tgz解壓到根目錄,便可以在相應的目錄下找到相應的qmake可執行程序並添加到Qt Creator當中了!

#cd  /usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin

為了和QT自帶的qmake區別,可以將qmake更名為qmake-arm並鏈接到 /usr/bin中

#mv  qmake qmake-arm

#ln –s   /usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake-arm /usr/bin/qmake-arm

這樣在任何地方,執行qmake-arm都可以進行編譯了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM