最近把Qt到開發環境建立了起來,以後打算多點時間在學習Qt上面,下面是我的移植與搭建過程,現在貼出來希望能對大家有點幫助。。。。。
作者:顧文彪
博客:http://blog.chinaunix.net/u3/113714/
交叉編譯器:arm-linux-gcc-4.3.2
開發環境:ubuntu10.10
聲 明:最近在網上發現有某些人轉載我的文章不但沒有標明來源,還說是自己到原創文章,讓我感到十分氣憤,我貼出自己的筆記完全是為了對嵌入式愛好者們做點貢 獻,請大家珍惜我的勞動成果!轉載的話請自覺注明來源:http://blog.chinaunix.net/u3/113714/
接下來開始:
首 先下載qt-everywhere-opensource-src-4.6.3.tar.gz 、qt-sdk-linux-x86-opensource-2010.04.bin 、tslib-1.4.tar.gz 這三個源碼包,鏈接我就不給了,大家自己去google一下,這裡我把這幾個包的用途說一下:
qt-everywhere-opensource-src-4.6.3.tar.gz為Qt的源碼包,用來編譯各種Qt的庫等,這裡需要編譯三次,分別 為x11版本,embedded版本和arm版本;編譯x11版只是為了得到qvfb工具,至於qvfb的用途後面自會說明;embedded版本為Qt 的嵌入式版本,將來和qvfb配合使用;arm版本很好理解,即要放到開發板上的東西。
qt-sdk-linux-x86-opensource-2010.04.bin是開發qt的IDE,這裡我用的是linux版本,用它來開發自己的Qt應用。
tslib-1.4.tar.gz為觸摸屏校正程序,編譯qt的arm版本的時候需要tslib的庫,tslib編譯後會生成觸摸屏校正程序(ts_calibrate),用來給開發板的觸摸屏進行校正。
下面是具體的移植過程:
約定:
交叉編譯器路徑:/usr/local/arm/4.3.2/bin/
源碼包路徑:/home/gu/Qt/src/
輸出目錄:/home/gu/Qt/output/
將qt-everywhere-opensource-src-4.6.3.tar.gz解壓三次,分別命名為qt-x11、qt-embedded和qt-arm
一、x11版本的編譯
首先配置,命令為:
./configure -prefix ~/gu/Qt/output/qt-x11
p { margin-bottom: 0.21cm; }然後輸入“o”,在然後輸入“yes”,下面的embedded版本和arm版本配置時也是一樣。
執行後會出現錯誤:
p { margin-bottom: 0.21cm; }
出錯:Basic XLib functionality test failed!
解決方法:sudo apt-get install libx11-dev libxext-dev libxtst-dev
然後: make && make install
編譯會持續一個多小時,取決與你電腦的配置高低,這裡有個竅門,假如你PC機的CPU是雙核的話,將make指令加上 -j3參數,會進行多線程編譯,編譯速度會大大提高,即make -j3,這時會使用兩個核心同時編譯,大家可以試試;編譯完成後qt的x11版本會被安裝在/home/gu/Qt/output/qt-x11目錄;這 時還沒與完,關鍵的qvfb程序還沒有被編譯,所以繼續:
cd tools/qvfb
make
然後將在/home/gu/Qt/src/qt-x11/bin目錄生成的qvfb程序,將它復制到電腦的/usr/sbin目錄,以後可以直接在終端執行了。
二、embedded版本的編譯
配置:
p { margin-bottom: 0.21cm; }
./configure -no-largefile -no-accessibility -no-qt3support -no-phonon -no-svg -no-nis -no-cups -no-opengl -qvfb -prefix ~/Qt/output/qt-embedded
配置完成後:
make -j3
make install
一般不會出現任何錯誤的。
三、tslib的編譯
首先:
p { margin-bottom: 0.21cm; }
export PATH=/usr/local/arm/4.3.2/bin/:$PATH
export PREFIX=/home/gu/Qt/
export CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc p { margin-bottom: 0.21cm; }
./autogen.sh
出現錯誤:./autogen.sh: 4: autoreconf: not found
解決方法:
p { margin-bottom: 0.21cm; }
sudo apt-get install autoconf automake libtool
然後重新:./autogen.sh
然後:
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache配置完成後:make && make install
四、arm版本的編譯
首先配置:
p { margin-bottom: 0.21cm; }./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 4,8,12,16 -no-qt3support -no-qvfb -qt-mouse-tslib -prefix /home/gu/Qt/output/qt-arm/ -qt-sql-sqlite -I/home/gu/Qt/output/tslib/include
-L/home/gu/Qt/output/tslib/lib -no-rpath -no-largefile -no-accessibility
然後:make
p { margin-bottom: 0.21cm; }
出現錯誤:../../corelib/tools/qbytearray.cpp:54: fatal error: zlib.h: 沒有那個文件或目錄
解決辦法:sudo apt-get install zlib1g-dev
然後重新:make -j3
編譯完成之後make install
------------------------------------至此Qt移植完成-----------------------------------
接下來要安裝配置Qt開發環境。。。。。。。。。。。。
Qt SDK的安裝:
直接:./qt-sdk-linux-x86-opensource-2010.04.bin
會出現圖形界面安裝,跟windows上安裝程序一樣,相信大家都會。。。
安裝完成後桌面會有一個Qt creator的圖標,運行它來進行配置:
p { margin-bottom: 0.21cm; }
在Qt-creator菜單欄Tools—〉Options…打開Options窗口。
在Options界面左側,點擊Qt4—〉Qt
Versions右側顯示Qt Versions設置界面。
在Qt Versions界面中點擊那個藍色的大“╋”號圖標
在下方Version Name:文本框內輸入Qt的版本名,可以隨便填,能區分各個版本即可,如X11版取名為qt-x11、embedded版本取名qt-embedded、arm版本取名為qt-arm
p { margin-bottom: 0.21cm; }
單擊Qmake Location:右側Browse…按鈕,在彈出的“Select
QMake Executable”窗口中找到對應版本的qmake程序(x11版路徑:/home/gu/Qt/output/qt-x11/bin/qmake,embedded版路徑:/home/gu/Qt/output/qt-embedded/bin/qmake,arm版路徑:/home/gu/Qt/output/qt-arm/bin/qmake),單擊打開,回到Qt
Versions界面。
回到Qt Versions界面,單擊Debugging
Helper:右側Rebuild按鈕,等待片刻,看到Debugging
Helper:後出現一個綠色的“√”即可。
arm版本的Rebuild時會出現錯誤,解決方法為:
sudo gedit /home/gu/Qt/output/qt-arm/mkspecs/qws/linux-arm-g++/qmake.conf修改為:
QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK =/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
重新rebuild , p { margin-bottom: 0.21cm; }
添加完畢,單擊OK按鈕關閉Options窗口。
----------------------------至此qt creator配置完成--------------------------------------
至於qt creator的使用方法就要靠大家自己學習了,好了,以後就可以開發Qt應用程序了!!!