按照不同的圖形界面來(lái)劃分,分為四個(gè)版本:
1、Win32版:適用于windows平臺
2、X11版:適用于各種X系統的Linux和Unix平臺
3、Mac版:適用于蘋(píng)果的MacOS
4、Embedded版:適用于具有幀緩沖(Frame buffer)的linux平臺
Qtopia是基于qt開(kāi)發(fā)的一個(gè)軟件平臺,Qtopia是構建于Qt/E之上的一系列應用程序,在這個(gè)平臺上我們可以開(kāi)發(fā)各種應用程序。2008年,TrollTech公司被Nokia收購后,Qtopia被重新命名為Qt Extended。 Nokia在推出了Qt Extended的最新版Qt Extended 4.4.3之后的2009年3月3日,決定停止Qt Extended的后續開(kāi)發(fā),轉而全心投入Qt的產(chǎn)品開(kāi)發(fā),并逐步會(huì )將一部分Qt Extended 的功能移植到Qt的開(kāi)發(fā)框架中。所以總的來(lái)說(shuō),QT也就三種:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式帶各種應用程序的Qtopia桌面系統?。?!
1、Qt的安裝程序(包含了QtCreator,QtAssistant)
Windows--x86--msvc2012_64_opengl :表示window平臺,msvc2012可以與VS2012進(jìn)行結合使用,64位應用程序,要求電腦裝的是64位操作系統;opengl表示支持openGL的繪圖模式
Windows--x86--mingw48_opengl :window平臺下的mingw48編譯器進(jìn)行編譯。
2、Qt的庫的源碼包
3、Qt安裝包的下載網(wǎng)址:http://qt-project.org/downloads 如果想下載Qt的以前版本,可以在上面網(wǎng)址的最下面的一欄有個(gè)Archive for old versions ,進(jìn)去就可以下載qt的以前版本了。
1 、t-x11-opensource-src-4.3.2.tar.gz
2 、qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2
3 、qt-everywhere-opensource-src-4.8. 5.tar.gz
4 、QtSdk-offline-linux-x86-v1.2.1.run
5 、qt-creator-linux-x86-opensource-2.5.0.bin
這些版本真有些讓人眼花繚亂。后經(jīng)過(guò)一番的研究和請教,終于對這幾個(gè)版本之間的關(guān)系有點(diǎn)眉目了。
首先網(wǎng)上有人說(shuō)安裝 1和2,就可以了,因為1可以提供Qt designer 和qvbf,然后2可以提供嵌入式編譯庫,兩者安裝后就可以搭建一個(gè)嵌入式qt開(kāi)發(fā)環(huán)境了,其實(shí)沒(méi)錯,不過(guò)已經(jīng)過(guò)時(shí)了,因為現在有了Qt creator。Qt creator 就包含了 Qt designer和qvbf,因此我們僅僅安裝5的版本就可以替代1的安裝。不過(guò)2也還是要安裝,不過(guò)了,像2那種版本的編譯庫現在已經(jīng)有了更加齊全的庫替代,那就是3了。而4就是5的升級版了,它不僅可以包含5擁有的所有東西,而且能開(kāi)發(fā)嵌入式應用程序,不過(guò)暫時(shí)還沒(méi)測試。
構建Qt/Embeded的交叉編譯環(huán)境需要3個(gè)Qt開(kāi)發(fā)環(huán)境:
Qt的桌面開(kāi)發(fā)環(huán)境:在linux中全安裝qt,用它編譯好的程序后,可以直接用“./”運行。
Qt/Embeded(x86)環(huán)境:在宿主機平臺模擬編譯和調試目標機程序的環(huán)境,帶有qvfb功能,在PC機上可以模擬應用程序在arm開(kāi)發(fā)板上的運行情況。用此編譯好的程序,只用“./”命令不可以運行,必須加上參數 -qvfb -qws。
Qt/Embeded(ARM)交叉編譯環(huán)境:編譯好的程序,用于在arm平臺上運行。
首先要準備好交叉編譯所需要的軟件包:
(1)arm-linux-gcc-4.4.3-20100728.tar.gz(交叉編譯環(huán)境)
(2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源碼)
(3)qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系統是64位,所以選擇x86_64)
(4)tslib-1.4.tar.gz(觸摸屏校驗工具)
其中(2)和(3)在http://download.qt-project.org/archive/ 進(jìn)行下載。
主機操作系統:ubuntu10.04
主機編譯器:gcc4.4.3,
交叉編譯器:arm-linux-gcc-4.3.3
(1)首先以root用戶(hù)登入
(2)復制arm-linux-gcc-4.3.2.tgz到根目錄下tmp文件夾里
(3)解壓命令tar xvzf arm-linux-gcc-4.3.2 -C /
注意以上命令必須要有-C而且是大寫(xiě)的后邊有個(gè)空格也要注意
(4)配置下編譯環(huán)境路徑 在控制臺下輸入 gedit /root/.bashrc 等一會(huì )出來(lái)文本編輯器后在文件最后(最后一行)加上 下面代碼
export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
重新打開(kāi)一個(gè)終端,使上面的配置文件生效;輸入命令 arm-linux-gcc -v; 如果出現gcc的版本信息,就代表交叉編譯器安裝成功,會(huì )輸出gcc的版本號;
把tslib-1.4.tar.gz放到一個(gè)目錄下,比如/opt目錄下。接著(zhù)執行命令如下:
#tar zxvf tslib-1.4.tar.gz
執行命令cd tslib,進(jìn)入tslib當前目錄,接著(zhù)執行命令如下:
#./autogen.sh
然后接著(zhù)執行配置命令:
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
最后執行編譯命令和安裝命令如下:
1. make
2. make install
如果以上步驟沒(méi)錯,則可以在/usr/local/tslib下出現我們需要的庫文件,這些庫文件我們移植時(shí)會(huì )用到。
編譯期間出現的錯誤:./autogen.sh: 4: autoreconf: not found
解決辦法:sudo apt-get install autoconf automake libtool
qt-creator-linux-x86_64-opensource-2.5.2.bin 拷貝到linux系統中,在終端中把路徑切換到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路徑,運行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就會(huì )出現圖形安裝界面;下面的安裝步驟就和我們在windows下安裝軟件差不多。
注意:下的版本要和你的操作系統相匹配,32位的系統下對應32位的應用程序;
將源碼qt-everywhere-opensource-src-4.8.5.tar.gz 進(jìn)行解壓,并復制三份到/usr/local目錄下,并分別命名為qt-pc,qt-x86,qt-arm
進(jìn)入qt-pc目錄,執行如下操作:
#./configure
#make
#make install
編譯過(guò)程中出現的問(wèn)題:
出錯:Basic XLibfunctionality test failed!
這個(gè)錯誤主要是因為,XLib庫沒(méi)有安裝,所以在編譯X11平臺時(shí),應該保證,以下命令正確執行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。
進(jìn)入qt-x86目錄,執行如下操作:
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# make
# make install
安裝過(guò)程比較長(cháng),沒(méi)有碰到過(guò)錯誤。
編譯安裝PC版中的 qvfb:
進(jìn)入qt-pc/tools/qvfb/目錄,執行如下操作:
#make
編譯完畢,將qt-pc/bin目錄下的qvfb文件復制到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目錄。
編譯qvfb時(shí),出現了如下錯誤:
x11keyfaker.cpp:48:34: 致命錯誤: X11/extensions/XTest.h:沒(méi)有那個(gè)文件或目錄
編譯中斷。make: *** [.obj/release-shared/x11keyfaker.o] 錯誤 1
解決方法:sudo apt-get install xorg-dev
如果makefile中沒(méi)有-lXtst選項,則修改makefile 中 LIBS 選項: 添加 -lXtst選項
必須加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”參數, 不然安裝后不在QtEmbedded-4.8.5-arm文件夾下,而是覆蓋了QtEmbedded-4.8.5。
# ./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
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
如果放棄配置,則使用命令:# make confclean
編譯:# make
安裝:# make install
安裝完成后,在/usr/local/Trolltech目錄中有三個(gè)文件夾:Qt-4.8.5、QtEmbedded-4.8.5、QtEmbedded-4.8.5-arm。
運行qvfb,提示了如下錯誤,在網(wǎng)上也查了很多種解決辦法,最后還是沒(méi)有解決; 有的說(shuō)要重新編譯內核,并帶上參數;覺(jué)得比較麻煩,就沒(méi)有去嘗試;不過(guò)這個(gè)錯誤并不影響我們仿真模擬Qt4程序。
X86的調試編譯與調試
(1)打開(kāi)QtCreator ,工具---->選項--->構建和運行 進(jìn)行設置,在Qt版本菜單下,手動(dòng)設置選擇qmake路徑
(2)打開(kāi)QtCreator 對其進(jìn)行設置,點(diǎn)擊左邊的項目,選擇運行,對其進(jìn)行設置,在參數里添加 -qws參數
(3)編譯與運行,現在終端 輸入命令:qvfb -width 800 -height 480 & 打開(kāi)虛擬緩沖端;然后就可以在QtCreator對程序進(jìn)行編譯、運行了;
關(guān)于A(yíng)RM移植的那部分還沒(méi)有做,等以后自己做的話(huà),再補充。
想用Qt4編寫(xiě)一個(gè)俄羅斯方塊的游戲,并把它移到ARM版上;開(kāi)始了Qt的交叉編譯環(huán)境的搭建;唯有編譯qvfb時(shí),遇到的麻煩最多。
聯(lián)系客服