基于Linux 安裝與建立 Qt 桌面開發(fā)運(yùn)行環(huán)境
基于Linux 安裝與建立 Qt 桌面開發(fā)運(yùn)行環(huán)境是本文呢文要介紹的內(nèi)容,本人認(rèn)為虛擬機(jī)是***的朋友,先來看本文介紹。
1.下載Qt
在TrollTech網(wǎng)站http://www.trolltech.com/developer/ 上搜索下載Qt的相關(guān)包,包括
- qt-embedded-free-3.3.4.tar.gz
 - qt-x11-opensource-src-4.2.3.tar.gz
 
tmake-1.8.tar.gz #可以不要,因?yàn)橛鞋F(xiàn)在這些高版本的qt-embedded,qt-x11,qtopia里就有qmake
這些都是***的Qt版本,編譯過程好像跟查資料時(shí)的老版本的步驟有很大的不同,比如新版本使用qmake而不像以前使用tmake,還有configure腳本文件配置時(shí)的參數(shù)有許多變化,編譯時(shí)沒有什么資料可以查,除了trolltech本身的一些文檔,剩下的只好自己摸索了。
2.安裝與編譯
假設(shè)我把這些包都放在 /root/qt 下
解壓qt-x11-opensource-src-4.2.3.tar.gz
- tar vxzf qt-x11-opensource-src-4.2.3.tar.gz
 - export QT2DIR=$PWD/qt-x11-opensource-src-4.2.3 #設(shè)置一下環(huán)境變量
 
解壓qt-embedded-free-3.3.4.tar.gz
- tar vxzf qt-embedded-free-3.3.4.tar.gz
 - export QTEDIR=$PWD/qt-embedded-free-3.3.4
 
解壓tmake-1.8.tar.gz #后來發(fā)覺一開始 tmake是沒用的因?yàn)?2.0以上大版本有了qmake,不過開發(fā)的時(shí)候可以選擇用的,比較方便。
- export TMAKEDIR=$PWD/tmake-1.8
 
然后就是編譯了。
開始發(fā)現(xiàn)老是要設(shè)置環(huán)境變量,所以我專門各編輯一個(gè)腳本文件對(duì) qt-x11-opensource-src-4.2.3和 qt-embedded-free-3.3.4進(jìn)行編譯,分別放在各自的目錄中。
編譯 qt-x11-opensource-src-4.2.3 時(shí)腳本為:
- #!/bin/sh
 - export QT2DIR=/root/qt/qt-x11-opensource-src-4.2.3
 - export QTEDIR=/root/qt/qt-embedded-free-3.3.4
 - export QTDIR=$QT2DIR
 - export PATH=$QTDIR/bin:$PATH
 - export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 - ./configure -prefix-install -opengl
 
其實(shí)這里應(yīng)該還可以設(shè)置更多多的選項(xiàng),比如去掉一些支持,
可以縮短編譯時(shí)間,因?yàn)檫@個(gè)工程編譯完要用幾個(gè)小時(shí)??!
因?yàn)槲倚枰膐pengl的支持,所以選擇了這個(gè)選項(xiàng)。
其他的可以通過./configure --help 命令研究一下。
- make
 
然后就可以干其他的事情了,編譯時(shí)超痛苦,那個(gè)多文件阿,用了一上午才搞定,所以這時(shí)你可以盡情去玩一下了。
編譯好之后還要去qt-x11-opensource-src-4.2.3/tools/qvfb編譯 qvfb工具(這個(gè)工具編譯qt-embedded有用),make一下就可以了。
然后就編譯 qt-embedded-free-3.3.4,下面是的腳本:
- #!/bin/sh
 - export QT2DIR=/root/qt-x11-opensource-src-4.2.3
 - export QTEDIR=/root/qt-embedded-free-3.3.4
 - export QTDIR=$QTEDIR
 - export PATH=$QTDIR/bin:$PATH
 - export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 - cp $QT2DIR/bin/uic $QTEDIR/bin/ #下面這兩個(gè)工具編譯時(shí)要使用
 - cp $QT2DIR/bin/qvfb $QTEDIR/bin/
 - ./configure -qconfig qpe -qvfb -depths 4,8,16,32
 - make
 
又是好長(zhǎng)一段編譯時(shí)間,大概一個(gè)小時(shí)左右。
3.在virtual framebuffer里運(yùn)行程序
編譯好后就可以嘗試編譯 運(yùn)行examples/ 的例程了,但是編譯這些例子的時(shí)候有個(gè)很奇怪的錯(cuò)誤:
- Some of the required modules (large-config) are not available
 
網(wǎng)上查了一下,幸虧查到了僅有一個(gè)提問,而且有人決絕了, 說要修改每個(gè)例子下的.pro文件,把 requires = large-config 這一行注釋掉,但這一行原來真正有什么用,去掉后會(huì)有什么影響,我不得而知,不過編譯后還是可以在virtual framebuffer上運(yùn)行的。
編譯好例子后就可以運(yùn)行了,一開始運(yùn)行例子的時(shí)候總會(huì)有一個(gè)錯(cuò)誤:/usr/lib/qt-3.3/lib/fonts/fontdir 沒找到什么的,我就奇怪了,我的qt并沒有安裝在這個(gè)目錄的(按照上面的腳本文件),查看一下環(huán)境變量,居然有一個(gè)QTDIR非臨時(shí)變量(在多個(gè)shell中都會(huì)顯示的,應(yīng)該在配置文件寫死的)指向了這個(gè)目錄,再進(jìn)這個(gè)目錄查看一下文件的日期,都是很久之前的,絕不是剛剛編譯的,才知道這個(gè)是操作系統(tǒng)自帶的qt。于是每次運(yùn)行時(shí)qt程序時(shí)需要用export把QTDIR改掉,改成 $QTEDIR 同時(shí)也把 $QTEDIR/bin 添加到 PATH 中,因?yàn)?要用這個(gè)目錄下的qvfb程序是 qt程序運(yùn)行在virtual framebuffer上,運(yùn)行時(shí)執(zhí)行:
- qvfb -width 640 -height 480 &
 - sleep 10 #不知道這個(gè)有什么用?不過好像可以使qvfb在后臺(tái)運(yùn)行
 - ./launcher -qws #launcher是examples的一個(gè)例子
 
如果成功的話qt程序就會(huì)運(yùn)行在qvfb的界面里。
4.編寫自己的qt程序
下面可以自己編寫自己的程序了。
先設(shè)置一下環(huán)境變量,我這個(gè)系統(tǒng)比較郁悶,有老的qt,所以好把QTDIR設(shè)置成新編譯都目錄,覆蓋原來的,這個(gè)很重要,否則無(wú)法通過編譯,這個(gè)弄了我一個(gè)晚上才發(fā)現(xiàn)。
首先修改環(huán)境變量
- export QTDIR=/root/qt-embedded-free-3.3.4 #把老的qt覆蓋
 - export PATH=/root/qt-embedded-free-3.3.4/bin:$PATH #要使用qmake程序
 
我編寫了以下代碼,hello.cpp,并把這個(gè)文件保存在名為hello的目錄下
- #include <qapplication.h>
 - #include <qlabel.h>
 - int main(int argc, char **argv)
 - {
 - QApplication app (argc, argv);
 - QLabel *hello = new QLabel("<h2><fontcolorfontcolor=blue>Hello<i>Qt/Embedded!</i> </font> </h2>", 0);
 - app.setMainWidget(hello);
 - hello->show();
 - return app.exec();
 - }
 
進(jìn)入hello目錄,生成.pro文件
- qmake -project
 
也可以用tmake-1.8/bin下的progen工具生成.pro文件,tmake其中的一個(gè)使用就是這里了,不過要把tmake-1.8/bin的完整路徑加入到環(huán)境變量PATH中
修改hello.pro文件為
- TEMPLATE = app
 - TARGET = hello
 - CONFIG = qt warn_on release
 - DEPENDPATH = /root/qt-embedded-free-3.3.4/include
 - HEADERS =
 - SOURCES = hello.cpp
 - INTERFACES =
 
生成Makefile
- qmake -o Makefile hello.pro
 - 或者用
 - tmake -o Makefile hello.pro
 
然后
- make
 
就可以了
- qvfb -width 320 -height 240 &
 - sleep 10
 - ./hello -qws
 
大功告成,你可以欣賞自己的Qt程序了。
小結(jié):關(guān)于基于Linux 安裝與建立 Qt 桌面開發(fā)運(yùn)行環(huán)境的內(nèi)容介紹完了希望本文對(duì)你會(huì)有幫助!















 
 
 

 
 
 
 