在Linux中分別安裝應用於不同平台的QT:PC;嵌入式X86;ARM。
這三者PC版、嵌入式X86版和ARM版的區別主要體現在:當configure時分別加了不同的參數,具體區別是:
PC平台:在linux中全安裝qt,用它編譯好程序後,直接用“./”就可運行。
嵌入式X86平台:帶有qvfb功能,在PC機上可以模擬應用程序在arm開發板上的運行情況。用此編譯好的程序,只用“./”命令不可以運行,必須加上參數 -qvfb
-qws;
ARM平台:編譯好的程序,用於在arm平台上運行。
1. 系統環境 主機操作系統:ubuntu10.04
主機編譯器:gcc4.4.3,
交叉編譯器:arm-linux-gcc-4.3.2
2軟件包:2.1 qt源代碼
qt-everywhere-opensource-src-4.6.3.tar.gz、
ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.3.tar.gz
也可以在ftp://ftp.qt.nokia.com/qt/source/下找對應的版本
2.2觸摸屏校驗工具
tslib-1.4.tar.gz
下載地址:
http://ishare.iask.sina.com.cn/f/21567219.html
3安裝交叉編譯器 詳細見:《Arm-linux-gcc-4.3.2安裝步驟》
/content/2561520.html
4安裝觸摸屏校驗工具把tslib-1.4.tar.gz放到一個目錄下,比如/opt目錄下。接著執行命令如下:
#tar zxvf tslib-1.4.tar.gz
執行命令cd tslib,進入tslib當前目錄,接著執行命令如下:
#./autogen.sh
然後接著執行配置命令:
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
最後執行編譯命令和安裝命令如下:
1. make
2. make install
如果以上步驟沒錯,則可以在/usr/local/tslib下出現我們需要的庫文件,這些庫文件我們移植時會用到。
編譯期間出現的錯誤:./autogen.sh: 4: autoreconf:
not found
解決:sudo apt-get install autoconf automake libtool
/content/2561521.html
5.編譯Qt-4.6.3庫文件5.1解壓:把qt-everywhere-opensource-src-4.6.3.tar.gz放到/opt目錄下。接著執行命令如下:
1. tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz
接著把解壓出來的目錄重名成qt-everywhere-opensource-src-4.6.3文件復制兩份,把這三份文件分別重命名為:pc,qt-embedded-4.6.3-x86 qt-embedded-4.6.3-arm
5.2編譯 PC 版進入pc目錄,執行如下操作:
#./configure
# make
# make install
配置configure的時候會提問是使用什麼版本,選擇開源版本“o”,接受他的協議yes,下面的安裝也一樣。
“Which edition of Qt do you wantto use?”
然後給你兩個類型供選擇:
Type'c' if you want to use the Commercial Edition.
Type'o' if you want to use the Open Source Edition.
第一個是商業版,第二個是自由版。
選擇 'o'(Qt/嵌入式自由版是Qt為了開發自由軟件提供的嵌入式版本)。
這時候,出現許可界面。
選擇 'yes'接受許可協議。
開始生成 makefile文件。這個大約需要 5 -10分鐘的時間。
安裝過程比較長,由於VM默認只是一個CPU,可以調整CPU的個數和你實際的機器一致,
Make命令添加-j3參數允許多線程編譯,可以加快速度,下面的編譯也是一樣。編譯的時候可以看到占用CPU的百分比100%
編譯過程中出現的問題:
A:出錯:Basic XLibfunctionality test failed!
解決方法:sudo apt-get install libx11-dev libxext-dev libxtst-dev
/content/2561522.html
B:出錯:collect2:ld
terminated with signal 11
解決:加大swap空間
http://blog.csdn.net/imxiangzi/article/details/7453008
5.3編譯嵌入式x86版進入x86目錄,執行如下操作:
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# make
# make install
安裝過程比較長,沒有碰到過錯誤。
編譯安裝PC版中的 qvfb:
進入pc/tools/qvfb/目錄,執行如下操作:
#make
編譯完畢,將pc/bin目錄下的qvfb文件復制到/usr/local/Trolltech/QtEmbedded-4.6.3/bin目錄。
5.4編譯嵌入式arm版(需要 arm-linux-gcc 的支持) 必須加上“-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm ”參數, 不然安裝後不在QtEmbedded-4.6.3-arm文件夾下,而是覆蓋了QtEmbedded-4.6.3。
# ./configure \
-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs
如果放棄配置,則使用命令:# make confclean
編譯:# make
安裝:# make install
安裝完成後,在/usr/local/Trolltech目錄中有三個文件夾:Qt-4.6.3、QtEmbedded-4.6.3、QtEmbedded-4.6.3-arm。
5.5測試qvfb為了方便使用qvfb模擬ARM的結果,在環境中添加qvfb的路徑
1. 輸入命令: gedit /.bashrc(或者是vim ~./bashrc)編輯.bashrc文件,在文件末尾加入如上面的內容
export PATH=/usr/local/Trolltech/QtEmbedded-4.6.3/bin:$PATH
2. 重啟,測試是否加入成功
echo $PATH看是否顯示剛才添加的路徑
3. 測試
命令:#qvfb -width 800 -height 480 &
其中&表示後台運行。
將會出現界面
表示qvfb啟動成功
====================================================================
主要參考:
1.QT嵌入式環境搭建與移植
http://blog.chinaunix.net/uid-26119896-id-3141782.html
2.Linux下實現Qt 4.6.3移植Ubuntu10.10篇
http://blog.csdn.net/defonds/article/details/4941746
3.Linux 下編譯並安裝配置 Qt 全過程
http://mobile.51cto.com/symbian-273308.htm