1. 程式人生 > >Qt移植以及QT creator一鍵除錯

Qt移植以及QT creator一鍵除錯

轉載地址:http://home.eeworld.com.cn/home.php?mod=space&uid=722063&do=blog&id=557502

筆者使用的開發板是EVB335(如下圖)


1.下載qt和tslib
我編譯成功的是qt4.8.5,qt4.8.5以及tslib在以下連線均有分享

2.編譯tslib
首先建立工作目錄,我建立的目錄為 /usr/local/tslib
然後將tslib原始碼解壓

接著安裝automake和libtool工具

這時候,需要檢查交叉編譯器的路徑是否新增: 輸入 vim /etc/profile

如果沒有新增,就按照如上格式新增自己的交叉編譯路徑
最後進行編譯,輸入以下命令
./autogen.sh
--prefix後選擇的是安裝路徑
./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --prefix=/usr/local/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes

做好以上內容後,用make編譯,make install安裝即可,此時/usr/local/tslib下已有安裝檔案

進入下一步之前,先將/usr/local/tslib/etc/ts.conf檔案第二行“#module_raw input”註釋去掉,變為“module_raw input”,注意一定要頂格。

3.編譯安裝qt
首先建立工作目錄,我建立的工作目錄是/usr/local/qt4.8.5-arm

然後指定交叉編譯工具,在解壓目錄下的mkspecs/qws/linux-arm-g++/qmake.conf,配置為如下格式

交叉編譯工具根據自己的板子,可能和我的有所不同,但是要確保交叉編譯器的路徑加到了PATH中

接著配置QT,--prefix 指定qt安裝的路徑,-I後面指定上一步tslib的include路徑,-L後面指定上一步tslib的lib路徑:
sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license

然後編譯 make,編譯會花好幾個小時(我就是在睡覺前編譯的),編譯成功後如下:

然後 make install,qt就安裝到/usr/local/qt4.8.5-arm下了


然後再次配置環境變數,新增以下內容

然後 source /etc/profile,讓環境變數生效即可
到這裡為止,整個過程已經完成了50%以上了,快開啟 qtcreator 看一下成果
5.qtcreator構建套件
此時開啟qtcreator,在選項裡手動新增qmake,qmake目錄為qt工作目錄下的bin檔案

然後在編譯下新增自己的交叉編譯器

如果這個時候,qt version提示沒有安裝qmlviewer
需要把/usr/bin目錄下qml開頭的檔案都複製到qt安裝目錄的bin下:
sudo cp /usr/bin/qml*  /usr/local/qt4.8.5-arm/bin
這個時候嵌入式linux的qt4.8.5就配置完成了
直接構建套件即可:

筆者進行到這裡的時候灰常開心
哈~哈~哈~
希望大家都能很順利的進行到這裡,接下來就是往開發板移植qt
6.移植到開發板
將編譯後的tslib和qt目錄下的bin打包,最好打包為.tar 或者 .zip檔案(我最開始打包為.tar.gz,開發板上沒辦法解壓),然後通過scp命令(需要配置ssh)傳到開發板上,然後解壓到自己建立的工作目錄下,我還是建立在了/usr/local/目錄下(如圖)

然後配置環境變數,vi /etc/profile
其中,qt的配置如下(#後面的是註釋掉的)

具體每句話什麼意思就不細說了,注意把路徑配置正確
tslib配置如下:

每句話的意思就不說了(寫了一晚上了,略累),注意把路徑配置正確
然後source環境變數就行了。
到這裡已經完成90%了,長呼一口氣~~
7.一鍵遠端除錯
此時我們再次開啟qtcreator,在選項裝置下新增自己板子的ip地址

配置完成後,可以點選旁邊的test測試

測試成功後,離成功只剩一步了!!!!
首先在開發板建立qt的執行文件,我直接建立在跟目錄下

然後在.pro檔案下新增該目錄

儲存.pro檔案後,在專案下可以看到如下結果


接下來就是見證奇蹟的時刻!!!!
直接編譯執行(隨便一個QT專案)

此時看開發板,程式已經在運行了。


8.總結
編譯qt到開發板還是比較費勁的……
過程中遇到很多坑,有些已經記不清了,希望這個帖子可以幫到一些初學者。
由於寫了太長時間且本人水平有限……如果有錯,還請各位大佬及時指正,以免造成誤導。