版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、qt完全手冊(轉(zhuǎn))嵌入式工具qt的安裝與使用摘要qt是trolltech公司的一個產(chǎn)品。trolltech是挪威的一家軟件公司,主要開發(fā)兩種產(chǎn)品:一種是跨平臺應(yīng)用趕序界面 框架;另外一種就是提供給做嵌入式linux開發(fā)的應(yīng)用程序平臺,能夠應(yīng)用到pda和各種移動設(shè)備上。ch和qtopia分別 是其中具有代表性的兩個。(2004-05-05 10:52:14)by lanf,出處: .html作者:胡利民本文選自:開放系統(tǒng)世界qt是trolltech公司的一個產(chǎn)品。trolltech是挪威的-家軟件公司,主耍開發(fā)兩種產(chǎn)品:一種是跨平臺應(yīng)用雄序界面 框架;另外一種就是提供給做械入式linux開發(fā)的應(yīng)
2、用程序平臺,能夠應(yīng)用到pda和各種移動設(shè)備上。qt和qtopia分別 是其中具冇代表性的兩個。qt是一個多平臺的c+圖形用八界面應(yīng)用程序框架,它能給用八提供粘美的圖形用戶界而所帶耍的所有元素,而口它是基 于一種面向?qū)ο蟮乃枷?,所以用戶對其對象的擴展是相當(dāng)容易的,并且它還支持真正的組件編程。qt是linux桌而環(huán)境kde的基礎(chǔ)。筆者認(rèn)為,可以說qt與windows下的mfc的實質(zhì)是一樣的,所以qt最大的優(yōu)點在 于其跨平臺性,可以支持現(xiàn)有的多種操作系統(tǒng)平臺,主要有: ms/v/indows95、windows 98windowsnt 4.0> windows 2000、windows xp;
3、 unix/x11 linux、sun solaris、hpux、compaq true64unix. ibm aix. sgi irix 和很多其它 x11 立臺; macintosh! mac osx; embedded帶 frambuffer 的 linux 平臺。下面簡單介紹一下qt/embedded和qtopia在linux上的安裝和使用,還冇在開發(fā)過程屮可能碰到的一些問題。qt和qtopia的安裝如果需要安裝一個帶fram buffer的qtopia平臺,需要有以下軟件(所列舉軟件以筆者使用的為例): qtopia 1.6.0; tmake 1.11; qt/embedded 2.
4、3.4 (qtopia 1.6.0是基于該開發(fā)平臺上開發(fā)的); qt/em bedded 2.3.2 for x11: qt 3.1.2 for x11 o在trolltech公司的網(wǎng)站上可以下載該公司所捉供的qt/em bedded的免費版本。qtopia52臺安裝分為以下幾個步驟:1.解包 qtopia在linux命令模式下運行以下命令:tar xfz ctopia-source-1.6.0 (解包)cd qtopia-source-1.6.0export qpedir=$pwd (設(shè)置環(huán)境變量)cd.2 安裝"make在linux命令模式下運行以下命令:tar xfz tmak
5、e-1.11 .tar.gzexport tmakedir= $pwd/tmake-1.11export tmakepath=$tmakedir/lib/qws/linux-x86-g+ +export f»ath=$tmakedir/bin:$path3. 安裝 qt/embedded2.3.4在linux命令模式下運行以下命令:tar xfz ct-embedded-2.3.4-commercial.tar.gzcd qt-2.3.4export qtdir=$pwdexport qtedir=$qtdirexport f,ath=$qtdir/bin:$pathexport l
6、.d_library_path= $qtdir/lib:$ld_library_path cp $qpedir/src/qt/qconfig-qpe.h src/tools/./configure qconfig qpe qvfb -depths 4,8,16,32make sub-srccd .也可以在configure的參數(shù)中添加一system -jpeg和gif,使qtopia平臺能支持jpeg、gif格式的圖形。4. 安裝 qt/x11 2.3.2在linux命令模式下運行以下命令:tar xfz ct-x11 -2.3.2-commercial.tar.gzcd qt-2.3.2ex
7、port qtdir=$pwdexport f,ath=$qtdir/bin:$pathexport l.d_library_path= $qtdir/lib:$ld_library_path /configure noopenglmakemake c tools/qvfbmv tools/qvfb/qvfb bincp bin/uic $qtedir/bincd .根據(jù)開發(fā)者本身的開發(fā)環(huán)境,也可以在configure的參數(shù)中添加別的參數(shù),比如-no-opengl或noxfs,可以鍵入./configure -help來獲得一些幫助信息。5. 安裝 qt/x11 3.1.2在linux命令模式
8、下運行以下命令:tar xfz ct-x11 -commercial-3.1 .x.tar.gzcd qt-x11 -commercial-3.1 .xexport qtdir=$pwdexport qt3di r= $qtdi rexport f,ath=$qtdir/bin:$pathexport l.d_library_path= $qtdir/lib:$ld_library_path./configure -threadmakecd .6. 安裝 qtopia在linux命令模式;下運行以下命令:cd qtopia-source1.6.xexport qtdi r= $qtedi re
9、xport qpedir=$pwdexport f,ath=$qpedir/bin:$pathcd src./configuremakecd7. 安裝qtopia桌面cd qtopia-source-1.6.x/srcexport qtdir= $qt3dir./configure -qtopiadesktopmakemv qtopiadesktop/bin/qtopiadesktop ./bincd .qt和qt designer的使用根據(jù)上面的步驟安裝完成了 qt/em bedded和qtopia之后,就可以運行這些程序了。運行qt的虛擬仿真窗口:在linux的圖形模式下運行命令qvfb&
10、amp;; qtopia只是一個用qt/em bedded開發(fā)的程宇,運行 qtopia,在圖形模式下運行命令:export qtdi r= $qtedi r, qpe &;這樣qtopia的程序就運行在qvfb上,即qt的虛擬仿真'窗口。qt/em bedded是針對嵌入式linux而開發(fā)的一種開發(fā)工具,qt封裝了一些常用的類,而且這些類的名字都以q字開頭命 名,女llqstring. qdialog等。這里主要介紹一下如何利ju qt designer來設(shè)計組件,并生成相應(yīng)的代碼。在ch中,把組件分為復(fù)合體、原始體和配件。而在qt中,組件是由一些抽彖類、復(fù)雜的組件類、管理組
11、件幾何特性的類等 組成。qt 中有三個主要的基類:qobject、qapplication 和 qwidget。在qt屮編程,利用signal和slot進行對彖z間的通信是qt的主要特征。它與windows中的消息機制非常類似,但是 signal和slot機制真正實現(xiàn)了一種消息的封裝。當(dāng)對彖的狀態(tài)改變時,發(fā)hi signal,通知所冇的slot接受signal,盡管 它不知道哪些函數(shù)是slot,slot-開始也不知道哪些signal可以接收.signal和slot z間不是一-對應(yīng)的關(guān)系,一個signal 可以發(fā)給多個slot, slot也可以接收多個signal。slot除了可以接收sign
12、al以外,與其它的成員函數(shù)沒有區(qū)別。這種機 制比使用冋調(diào)函數(shù)要靈活,但是會減慢程序的運行速度。不過在現(xiàn)在高速cpu的面前,這種損失是無足輕重的,而忖它還能 保證程序的簡明性和靈活性,非常便利。在qt的組件中,不僅定義了常用的成員變量和成員函數(shù),還定義了所有與該組件相關(guān)的signal和slot。要將組件組合起來,最簡單的方法就是使用qt designer。首先要啟動qt designer,在linux命令模式下,鍵入以下命令 (假設(shè)qt安裝在/usr/local下):cd qt-2.3.2/bin./designer這樣就可以啟動一個與windows下的delphi相類似的如圖1的界面。然后新建
13、一個qframe,將自己需要的組件直接拖拉到這個frame中,相倍很多人都有過這樣的經(jīng)歷,此處就不再詳細描 述了。完成之后存盤時,會將這個新的組件保存為一個擴展名為ui的文件。假設(shè)所存的文件名為test.ui,用vi test.ui來 查看這個文件,發(fā)現(xiàn)這是一個用xml語言寫的一個文木。下面用這個test.ui生成相應(yīng)的test.h和test.cpp。同樣還是在 這個日錄下,可以看到一個uic的工具,這個是qt專門用來將ui文件生成.h和.cpp文件的,在終端模式下鍵入以下命令:./uic -o test.h test.ui./uic -o test.h -i test.cpp test.ui
14、此時就能看到生成了相應(yīng)test.h和test.cpp,這是一個類。當(dāng)然這只是一些表面的東i碼 還需要在這些代碼中添加相應(yīng)的 signal和slot,完成所需耍的操作。值得注意的是,相應(yīng)版本生成的ui最好用相應(yīng)版本的uic來生成代碼。如果用qt 3.1.2 的designer生成的ui,用qt 2.3.2的uic來生成代碼,生成的代碼都會是一些空函數(shù)。在一般的開發(fā)過程屮,首先通過這個ui生成的一個類,在qt屮通常叫做base,如上而的例了,叫做test base;然后再新 建一個類,來繼承這個base。通常叫做實現(xiàn)類impl,如testlmpl在這個實現(xiàn)類里面定義所需要的成員函數(shù)、signal和
15、 slot,因為ui可能是經(jīng)常需要改動的。如果這樣做,每次只需耍在designer中修改ui,而不用去理會這些成員函數(shù)、signal 和 slot 了。編譯一個qt程序必然需要makefile,在qt中提供了一個專門生成makefile的工具,就是tmake。用tmake需要根據(jù)編 寫的程序?qū)懸粋€.pro文件。.pro文件非常簡單,冇固定的格式,下面是一個例子:template = appconfig = qtopia warn on releasem0c_di r = tmpobjects_dir =tmpheaders =fcrs.hstructs.h globalfunc.h globa
16、lvarsh testimpl.hsources = main.cpp globalf un c.cppglobalvars.cpp testimpl.cppinterfaces = test.ui target = fcrs生成這個.pro文件之后,在終端中鍵入下面的命令:tmake - makefile 就自動生成了一個makefile,使用這個makefile編譯所編寫的程序就可以了。qt/em bedded開發(fā)環(huán)境建立的過程qt/em bedded開發(fā)環(huán)境建立的過程:(這些軟件可以免費從trolltech的web或ftp服務(wù)器上下載;) tmake 1.11或更高版本;
17、(生成qt/em bedded應(yīng)用工程的m akefile文件) qt/em bedded 2.3.7 (qt/em bedded 安裝包) qt 2.3.2 for x11: (qt的x11版的安裝包,它將產(chǎn)生x11開發(fā)環(huán)境所需要的兩個工具)1. 安裝tmake在linux命令模式下運行以下命令:tar xfz tmake-1.11 .tar.gzexport tmakedir=$pwd/tmake-1.11export tmakepath=$tmakedir/lib/qws/linux-x86-g+ +export f»ath=$tmakedir/bin:$path2. 安裝 q
18、t/embedded 2.3.7在linux命令模式下運行以下命令:tar xfz ctembedded3.7.tar.gzcd qt-2.3.7export qtdir=$pwdexport qtedir=$qtdirexport f»ath=$qtdir/bin:$pathexport ld_library_path= $qtdir/lib:$ld_library_path./configure -qconfig -qvfb -depths 4,8,16,32make sub-srccd .上述命令./configure -qconfig -qvfb -depths 4,8,16
19、,32 指定 qt 嵌入式開發(fā)包生 成虛擬緩沖幀工具qvfb,并支持4, 816, 32位的顯示顏色深度。另外我們也可以在 configure 的參數(shù)中添加一system jpeg 和 gif,使 qt/em bedded 平臺能支持 jpeg、gif 格式的圖形。上述命令make sub-src指定按粘簡方式編譯開發(fā)包,也就是說有些qt類未被編譯。qt嵌入式開發(fā)包有5種編譯范由的選項,使川這些選項,可控制qt生成的庫文件的大 小,但是您的應(yīng)用所使用到的一些qt類將可能因此在qt的庫中找不到鏈接。編譯選項的具 體用法可運tr./configure help命令查看。3. 安裝 qt/x11 2
20、.3.2在linux命令模式下運行以下命令:tar xfz ct-x11 -2.3.2.tar.gzcd qt-2.3.2export qtdir=$pwdexport f»ath=$qtdir/bin:$pathexport l.d_library_path= $qtdir/lib:$ld_library_path./configure noopenglmakemake -c tools/qvfbmv tools/qvfb/qvfb bin cp bin/uic $qtedir/bin cd .根據(jù)開發(fā)者木身的開發(fā)環(huán)境,也可以在configure的參數(shù)中添加別的參數(shù),比如 -no-
21、opengl或-no-xfs,可以鍵入./configure -help來獲得一些幫助信息。 如果qt/embedded的應(yīng)用是在unix平臺下開發(fā)的話,那么它就可以在開發(fā)的機器 上以一個獨立的控制臺或者炬擬緩沖幀的方式來運行,對于后者來說,其實是有一個x" 的應(yīng)用程序虛擬了一個緩沖幀。通過指定顯示設(shè)備的寬度,高度和顏色深度,虛擬出來 的緩沖幀將和物理的顯示設(shè)備在每個像素上保持-致。這樣每次調(diào)試應(yīng)用時開發(fā)人員就 不用總是刷新嵌入式設(shè)備的flash存儲空間,從而加速了應(yīng)用的編譯、鏈接和運行周期。 運行qt的虛擬緩沖幀工具的方法是:在linux的圖形模式下運行命令:qvfb (冋車)當(dāng)q
22、t嵌入式的應(yīng)用程序要把顯示結(jié)果輸出到虛擬緩沖幀時,我們在命令行運行這 個程序時,在程序名后加上-qws的選項。例如:$> hello -qws一,qt/ie的安裝。在本機中安裝了包括qt4.0.1 (windows版本)以及qt/e2。3。7 (linux版本)。qt/e我安裝在我的虛擬機中。因為qt/e2.3.7的版本問題,其適宜在redhat9。0版木(或更低版本)下安裝,否則安 裝不成功。qt/e安裝過程復(fù)雜,具體細節(jié)可以參考下而這篇文章。qt/embedded開發(fā)環(huán)境建立的過程此文在網(wǎng)上可搜索到。木機下虛擬機屮qt/e安裝路徑為:/home/wangxl/qte/qt-2.3.7
23、qt/x11 安裝路徑為:/home/wangxl/qte/qt-2.3.2tmake 安裝路徑為:/home/wangxl/qte/tmake-1.8qt/e 下載地址為:ftp:/ftp.rediris.es/mirror/qt/source/tmake 卜-載地址為:ftp:/二.q與qt/ e以及qt3與qt4之間的區(qū)別相對來說qt與qt/e的語法一樣,所不同之處在庫類大小或者庫類函數(shù)大小不同而已。qt/e相對t qt來說,不具有少數(shù) 類或者少數(shù)函數(shù)的支持。具體qt/e是否包含某個類或者包含某個類屮的函數(shù),我的方法是在qt/e安裝h錄下的include 文件夾中*查找。qt3利qt4冇
24、很多不同點,主要不同也是在于庫類以及支持函數(shù)冇所變化,比如,冇些qt3中的函數(shù),在qt4中被其他 瀕數(shù)名所代祎,因此很多qt4程序在qt3環(huán)境下無法執(zhí)行。qt/e2.3.7與qt3基本相同,除了我前而提到的qt與qt/e的差別。三. qt/ie編譯與執(zhí)行。1 .在qt/e編譯與執(zhí)行前要先設(shè)置tmake與qt/e li b環(huán)境,具體方法如下:rootlocalhost tmake-1.8# export tmakedir= $pwdrootlocalhost tmake-1.8# export tmakepath= $tmakedir/lib/qws/linux-x86-g+ +rootloca
25、lhost tmake-1.8# export path= $tmakedir/bin:$pathrootlocalhost qt-2.3.7# export qtdir=$pwdrootlocalhost qt-2.3.7#export qtedir= $qtdirrootlocalhost qt-2.3.7#export path= $qtdir/bin:$pathrootlocalhost qt2.3.7# export ld_library_path=$qtdir/lib: $ld_library_path2. 如果你是用designer i具設(shè)計的界面(后面冇講),則要將"
26、.ui文件轉(zhuǎn)換成文件和jcpp文件。轉(zhuǎn)換方法如下:uic -o test.h test.uiuic -o test.cpp -i test.h test.ui3. 編寫一個".pro文件(用來生成m akefile文件用),該文件格式比較固定。如文件基本格式如下(以test.cpp ,test.h main.cpp為例子):em plate = appconfig += qt warn_on releaseheaders = test.hsources = test.cpp main.cpptarget = hellodependpath=/home/wangxl/q
27、te/qt-2.3.7/includerequires=4. 生成makefile文件方法為:(make -o makefile 5編譯生成可執(zhí)行文件make6打開qvfb進入安裝qt/x11所在h錄,在bin目錄下執(zhí)行程序qvfb。有時候需耍修改qvfb執(zhí)行時的depth參數(shù)才能夠執(zhí)行qt/ e程序??梢灾苯釉趒vfb打開粉口的configure彩單項中選擇, 也可以用如下命令執(zhí)行qvfb。./qvfb -width * * -height * * -depth * *7.執(zhí)行qt/e程序如。/test在qvfb程序打開的窗口中將出現(xiàn)test程序的顯示。四. qt/g 與 q
28、t/x11安裝qt/e的同時還需要安裝qt/x11與tmake,tmake是用來幫助生成makefile文件的。安裝qt/x11主要是向qt/e 提供designer工具和qvfb工具的。designer可以用來設(shè)計圖形界而,最后生成.ui文件,可通過uic命令轉(zhuǎn)換為相應(yīng)的c+ +文件。qvfb模擬幀緩沖,提供qt/e程序的顯示平臺。五. qt/ie程序arm板上執(zhí)行在我虛擬機上可以執(zhí)行的qt/e程序不能在arm板上執(zhí)行,需要對qt/e進行重新編譯,并需耍設(shè)置響對于arm板系統(tǒng)的 編譯環(huán)境,具體方法可以參考我另外的一文qt/e開發(fā)記錄六. qt/ie支持中文顯示問題qt/e需耍字體轉(zhuǎn)換才能顯示
29、中文。具體方法可以參考我另外的一文qt/e開發(fā)記錄但是由于缺少unicode的qpf文件的字體,中文字大小不均勻問題尚沒解決。七qt/e的一些參考資料:httd://bbs/index.dhd qt 屮文論壇 (關(guān)于qt3的類,以及類函數(shù)可以在這尋找)提供qt3編程最好書籍的電子版本c+ + gui programming with qt 3(本機)關(guān)于qt4可以參考qt assistnat (本機中),另外qt assistnat中也可以查找qt3的類及庫等。設(shè)置qtopia的build環(huán)境1、環(huán)境交量在日標(biāo)系統(tǒng)上build qtopia必須設(shè)定必要的環(huán)境變量,如qt
30、dir,如果依賴多個版木的qt,貝懦要用壞境變量指向用到 的庫配置。一種方法是將環(huán)境變量的設(shè)定寫入文件,通過運行source命令應(yīng)用文件的內(nèi)容。舉例說明:linux/bash下建立環(huán)境變量設(shè)定文件qtopia.sh,內(nèi)容如下:export qpedir=/opt/qtopiaexport qtdir=/opt/qtopiaexport path=$qtdir/bin:$pathexport tmakepath=/opt/qtopia/tmake/lib/qws/linux-generic-g+ +export l.d_library_ path= $qtdir/lib:$ld_library_
31、path需要時運行source qtopia.sh即可應(yīng)用以上環(huán)境變量:。另外也可以通過在.bashrc文件屮設(shè)定別名來應(yīng)用這些環(huán)境變最。假設(shè)環(huán)境變量設(shè)置文件存放在home h錄的bin下,則可在.bashrc中加入:alias qtopia= 'source /bin/qtopia.sh'2、創(chuàng)建自定義的配置文件整個qtopia系統(tǒng)在build過程屮需要三個獨立的配登系統(tǒng):1)qt/em bedded 配置文件2)tmake用于build qtopia 1.x和一些第三方軟件3) qmake -用于build qtopia 2及以上版本在build qtopia以前,先耍完成
32、以上三項的配置。下面是創(chuàng)建一個“ m y a r m ”配置的例子:cp -r $tmakedir/lib/qws/linux-arm-g+ + $tmakedir/lib/qws/linux-myarm-g+ +cp -r $gtedir/configs/linux-arm-g+ + -shared $qtedir/configs/linux-myarm-g+ + - sharedcp -r $cpedir/mkspecs/qws/linux-arm-g+ + $qpedir/mkspecs/qws/linux-myarm-g+ +qt/em bedded編輯$qtedir/configs/
33、linux-myarm-g+ + -shared,修改其中的 utilities 和 flags 成適合系統(tǒng)的內(nèi)容,如: 可能需要修改sysconf_cxx, sysconf_cc和sysconf_li nk,指定正確的編譯器可能需要增加編譯選項 dmyarm,在代碼中増加宏#ifdef myarm (用以増加設(shè)備相關(guān)的代碼)tmake編輯$tmakedir/lib/qws/linux-myarm-g+ +/tmake.conf,修改用到的 utilites 和 flags:可能需耍修改 tmake_cc, tmake_cxx 和 tmake_link可能需要增加-dmyarm選項qmake修
34、改 $qpedi r/mkspecs/qws/linux-myarm-g+ +/qmake.c onf:qmake_ cc, qmake_cxx 和 qmake_link-dmyarm注意:qmake.conf的最后一-行必須是:exists($(qpedir)/src/config.pri):include($(qpedi r)/src/config.pri)可用于目錄名的字符正則表達式字符qtopia 1.9.x和qtopia 2.0.0 - 2.1.0對字符有以下的要求:qtopia build系統(tǒng)訪問到的任何目錄都不能包含正則表達式字符任何能被qregexp識別的特殊字符和字符序列都可
35、能引起問題字符只匹配自身不要將正則表達式字符用于h錄名,包括(但不僅限于):+ . ?* ()人$ 注:qtopia 2.1.0和2.1.1及以上版木可以通過應(yīng)用patch解除以上的限制空格qtopia build系統(tǒng)不支持h錄名屮包含空格。必須保證:build系統(tǒng)訪問到的日錄不包含空格訪問目錄的各層上級目錄也不包含空格qtopia的依賴和必要條件簡介為了使qtopia正確運行,必須滿足以下的必要條件:安裝適當(dāng)?shù)木幾g/交叉編譯工具qt/embedded-2.3.11linux kernel提供共享內(nèi)存、mmap和socket支持linux 支持frame bufferlinux支持oss聲音或
36、支持與oss兼容的alsa聲音。進一步的信息參考the qtopia a/v & appearance f-aq 還需要以下的庫:video4li nuxzliblibuuid(aka luuid)hbjpegxorg 或 x11注:fretype 不是必須的但建議支持 httd:/freetyd支持的編譯器和交叉編譯器gcc-2.95.2gcc 3.2.4gcc-3.3.0, gcc-3.3.3, gcc-3.3.4gcc-3.4.1聲音qtopia需要/dev/dsp可寫,并支持以下的ioctl操作:sndctl_dsp_setfragment - qtopia 將這個值設(shè)置為 0
37、x4000c.sndctl dsp setfm qtopia 設(shè)置為 afmt s16 lesndctl_dsp_stereo qtopia 設(shè)置為 1/true.sndctl_dsp_speed qtopia 設(shè)置為 441 00.sndctl_dsp_getospaceqtopia述需要/dev/dsp可以以阻塞方式和非阻塞方式打開。以上的設(shè)定是qtopia需要的設(shè)定,但可以容許少許的偏差, 但如果不設(shè)定成qtopia需要的值則不能保證音頻能平滑播放。假如您的設(shè)備只支持22500的播放速率,則在調(diào)用 sndctl_dsp_speed時耍報告此速率,以免造成音頻質(zhì)量的缺損。不過,如果系統(tǒng)不支
38、持getospace,非阻塞寫入 或sndctl dsp set fragment,兒乎可以肯定必然會損失音頻質(zhì)量。video4linuxcamera應(yīng)用程序需要支持video4linux v1的內(nèi)核,qtopia沒有提供該支持。請參考官方的video for linux資源站點,參看api的詳細內(nèi)容。zlibzlib 可以從 httd://zlib/ 下載libuuid(aka luuid)qtopia兀捉供uuid支持。這個庫可以從另外,如果你有suse linux的發(fā)行版,e2fsprogs-devel這個包可以提供uuid支持;在debian中對應(yīng)的包是uidd
39、ev. 這個庫應(yīng)該放在標(biāo)準(zhǔn)路經(jīng)t/usr/lib/libuuid.so請用包管理工貝來查看該包是否已經(jīng)安裝:rpm qa | grep e2fsprogs如果尚未安裝,請從安裝盤或鏡像站安裝這個包。需要注意的是,如果沒有安裝e2fsprogs-devel,在鏈接時會發(fā)生下面的錯誤:/ usr/lib/gcc-lib/i586-suse-linux/3.3.3/.i586-suse-linux/bin/id:cannot find -luuid如果安裝了該庫仍遇到上述錯誤,則檢查qtopia的configure腳本的l和r參數(shù),以確定腳本包含了庫的實際路徑。關(guān) 于交叉編譯的信息可參考system
40、 integrator's guide.libjpegqtopia k 提供 jpeg 庫。qtopia 需要 qt/em bedded 配置為支持 jpeg。libjpeg 庫可從 / 下載此外,如果你冇suse發(fā)行版,libjpeg這個包可提供該庫。這個庫應(yīng)該安裝在標(biāo)準(zhǔn)路經(jīng)/usr/lib/libjpeg.so檢査libjpeg包是否己經(jīng)安裝:rpm -qa | grep libjpeg如杲耒安裝,請從安裝盤或鏡像站安裝。關(guān)于libjpeg交叉編譯的信息,可參考system integrator's guide.xorg 或 x11開發(fā)包括
41、冇從以下站點下載:httd://相關(guān)討論決定開始qtopia需要的步驟,參考:getting started將qtopia集成到特定設(shè)備上的匝點步驟,參考:system integrator's guideqtopia 的 faqs,參看:qtopia index page系統(tǒng)是完全安裝redhat9.0 (里面帶qt3.1 ),板子是x-hyper250b的,toolchain用的是開發(fā)板帶的 hybus-arm-li nuxr1.1交叉編譯所用到的文件:qt-embedded-2.3.10-free.t
42、ar.gzqt-x11-2.3.2.tar.gzqtopia-fee-source.1 .tar.gztmake-1.13.tar.gze2fsprogs-1.35.tar.gz主機x86的編譯步驟:tar xfz ct-embedded-2.3.10-free.tar.gz(解壓后 qt-2.3.10 改名為 qt-2.3.10-host)export qtedir= $pwd/qt-2.3.1 o-hosttar xfz ct-x11 -2.3.2.tar.gz(解壓后 qt-2.3.2)export qt2dir=$pwd/qt-2.3.2tar xfz ctopia-free-sour
43、ce-2.1.1 .tar.gz(解壓后 qtopia-free-2.1.1 改名為 qtopia-2.1.1 -host)export qpedir= $pwd/qtopia-2.1.1 -hosttar xfz tmake-1.13.tar.gz(解壓后 tmake-1.13)export tmakedir= $pwd/tmake-1.13export tmakepath=$pwd/tmake.13/lib/qws/linuxx86-g+ +export f,ath=$tmakedir/bin:$pathcd qt-2.3.2export qtdir=$qt2direxport f,ath
44、=$qtdir/bin:$pathexport ld_library_path= $qtdir/lib:$ld_library_path./configure -no-xftmakemake c tools/qvfbcd.cd qt-2.3.10-hostexport qtdir=$pwdexport f»ath = $qtdir/ bin: $ pathexport ld_library_path= $qtdir/lib:$ld_library_pathmkdir bin (因為解壓后的qt-2.3.10沒有bin文件夾)cp $qt2dir/bin/uic bincp $qt2d
45、ir/tools/qvfb/qvfb bincp $qpe.di r/src/qt/qconfig-qpe.h src/tools/./configure qconfig qpe qvfb -thread -system-jpeg gif -depths 4,8,16,32 makecd .tar xzf e2fsprogs135.tar.gzcd e2fsprogs-1.35/configure -enableelfshlibsmake in stall lib/uuid/注:這是編譯x86的libuuid庫cd .cd qtopia-2.1.1 -hostexport f»ath
46、= $qpedi r/bin: $ pathexport ld_library_path=$qpedir/lib:$ld_library_path./con figuremake編譯例子:$qmake -project = >>我都是這樣創(chuàng)建.pro文件的$tmake -o makefile $make$qvfb &$./hello -qws 或#$qpe還沒怎么仔細研究過。目標(biāo)機arm-linux的編譯步驟:tar xfz ct-embedded-2.3.10-free.tar.gz(解壓后 qt-2.3.1 0 改名為 qt-2.3.10-target
47、)export qtedir= $pwd/qt-2.3.1 0-targettar xfz ct-x11 -2.3.2.tar.gzexport qt2dir=$pwd/qt-2.3.2tar xfz ctopia-free-source-2.1.1 .tar.gz(解壓后 qtopia-free-2.1.1 改名為 qtopia-2.1.1 -target)export qpedir= $pwd/qtopia-2.1.1 -targettar xfz tmake-1.13.tar.gzexport tmakedi r= $pwd/tmake-1.13export tmakepath= $pw
48、d/tmake1.13/lib/qws/linux-arm-g+ +export f,ath=$tmakedir/bin:$pathcd qt-2.3.2export qtdir= $qt2direxport f,ath=$qtdir/bin:$pathexport ld_library_path= $qtdir/lib:$ld_library_path./configure -noxftmakemake c tools/qvfbcd .cd qt-2.3.1 0-targetexport qtdir=$pwdexport path=$qtdir/bin:$pathexport ld_libr
49、ary_path= $qtdir/lib:$ld_library_pathmkdir bincp $qt2dir/bin/uic bincp $qt2dir/tools/qvfb/qvfb bincp $qpedir/src/qt/qconfig-qpe.h src/tools/./configure xplatform linux-armg+ -qconfig qpe -qvfb thread -systemjpeg gif -depths 4,8,16,32 makecd .注:這里需要arm版本的libjpeg.so.62, hybus-arm-linux-r1.1里面包含這個庫;如沒有
50、可以上網(wǎng)下載。tar xzf e2fsprogs-1.35.tar.gzcd e2fsprogs-1.35/configure -host= arm-linux -with-cc= armlinuxgcc with-linker= armlinux-ld enable-elf-shlibs pref ix=/usr/local/hy bus-arm-li nux.1/armli nuxmake install lib/uuid/ = = = >>> 這步安裝到 hybus-arm-linux-r1.1/lib 上的 libuuid.so.1.2 版木不對,要cp lib/li
51、buuid.so.1.2 ./hybus-arm-linux-r1.1/lib注:這步是交叉編譯arm的libuuid庫,配置詳情見./configure -help(還要多謝httd:d 20這里面的大哥呀,好不容易才在網(wǎng)上找到的)cd .cd qtopia-2.1.1 -hostexport f,ath=$qpedir/bin:$pathexport l.d_library_path=$qpedir/lib:$ld_library_pathcp src/libraries/qtopia/customlinux-ipaq-g+ + .cpp src/libraries/qtopia/cust
52、om-linuxarm-g+ + .cpp cp src/libraries/qtopia/custom-linux-ipaqg+ + .h src/libraries/qtopia/customlinux-armg+ + .h ./configure -xplatform linux-arm-g+ +make注:這里需耍 libstdc+ + .so 和 libgcc_s.so 庫develop環(huán)境下qt中文化程序設(shè)訃原文出處:linux公社原文作者:yfyoolkdevelop是一款在linux平臺下可以同windows環(huán)境下的vc相媲美的集成開發(fā)環(huán)境,qt則是一款支持包括wincows和
53、 linux平臺的gui庫,可以說它是linux下的mfc.在顯示上,qt使用unicode作為內(nèi)部編碼,可以支持多種編碼.如何使用qt進行國際 化編程在網(wǎng)上可以找到很多資料的,但都是針對較早版本的qt進行介紹的.qt3.0.5中對這些作了些改動,這些方法就相應(yīng)的要做些改 動.而且在kdevelop中開發(fā)qt應(yīng)用程序,將會事半功倍.我的開發(fā)環(huán)境為redhat8.0(需安裝kde開發(fā)工具包).首先在linux中打開kdevelop集成開發(fā)環(huán)境,用它的應(yīng)用程序向?qū)陆ㄒ粋€qt的sdi的應(yīng)川程序框架.這個同windows下 vc很類似.它將會為你自動生成版木號,作者,e-mail等信息的單文檔對話框
54、的應(yīng)用程序框架.我們首先對它自動生成的程序進行漢化(qt1 是我的項忖名稱).1. 漢化口動生成的程序添加翩譯文件在”項目"菜單中選捋'添加新的翻譯文件",語言選擇"zh_cn.gb2312”.將會創(chuàng)建一個zh_cn.gb2312字符編碼的翻譯文 件.擴展名為”.ts”.在qt3.0.5環(huán)境下,打開".ts”翻譯文件的工具是linguist.你可以在”工具”菜單中選擇”qtlinguist"來打開,在linguist菜也中選擇"file"-"open”打開所要翻譯的翻譯文件.此時可以在linguist窗口中
55、的source text 中的文木就是你所要翻譯的文木,選擇所要翻譯的文本,在下方有一個類似一頁紙一樣的地方,在translate下輸入翻譯后的文木. 所示.翻譯完這些文件后,編譯運行,在我們的程序里并不能顯示中文,還是英文,我們還需耍做的就是用(release命令將翻譯后的文 件轉(zhuǎn)換成”.qnt文件才可以使用.在控制臺下進入你用kdevelop所生成的應(yīng)用程序目錄.> irelease makefile.amqt3.0.5用這個兩個程序取代了以前版本的findtr和msg2qm命令.在kdevelop集成環(huán)境中打開main.cpp主函數(shù),qapplication a(argc, arg
56、v);a.setforit(qfont(',helvetica"s 10);qtranslator tor( 0 );tor.ioad( qstring("qt1 .'*) + qtextcodec:locale(), h.");/ tor.load( qstring(nqt1 .zh_cn.gb2312"),);a.installtranslator( &tor );/* un com me nt the followi ng line, if you want a windows 95 look*/ a.setstyle(windowsstyle);qt1 app * qt1 = new qt1 app();/form 1 * qt1 = new form 1 ();a.setma nwidget(qt1);此處:tor.ioad( qstring("qt1 .m) + qtextcodec:locale(),);是根據(jù)客戶環(huán)境的local
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 17215.682-2024電測量數(shù)據(jù)交換DLMS/COSEM組件第82部分:社區(qū)網(wǎng)絡(luò)Mesh通信配置
- 水電建設(shè)招標(biāo)文件內(nèi)容
- 九年級歷史上冊 第二單元 近代社會的確立與動蕩 第9課 古老印度的抗?fàn)幗贪?北師大版
- 2024秋七年級語文上冊 第6單元 第21課 女媧造人教案 新人教版
- 2024-2025學(xué)年高中歷史 第五單元 經(jīng)濟全球化的趨勢 第27課 綜合探究:中國如何應(yīng)對全球化的挑戰(zhàn)(2)教學(xué)教案 岳麓版必修2
- 2024秋四年級英語上冊 Unit 1 The Clothes We Wear Lesson 1 Skirt and Trousers教案 冀教版(三起)
- 2023三年級語文上冊 第八單元 24 司馬光說課稿 新人教版
- 高考地理一輪復(fù)習(xí)第十八章資源安全與國家安全第二節(jié)耕地資源與糧食安全課件
- 消防泵房管理制度
- 自愿贈與的合同(2篇)
- 新實用漢語課本16課
- 金融企業(yè)詳細劃分標(biāo)準(zhǔn)出臺-共分大中小微四類型
- 好書推薦——《三毛流浪記》PPT通用課件
- DM1204-B調(diào)音臺
- 鋁基合金高溫相變儲熱材料
- 干膜介紹及干膜工藝詳解實力干貨
- 《跨文化交際》課程教學(xué)大綱(英語師范專業(yè))
- 在“家庭醫(yī)生簽約服務(wù)”工作推進會上的發(fā)言稿
- 火力發(fā)電廠生產(chǎn)過程-ppt課件
- 領(lǐng)導(dǎo)在思想作風(fēng)紀(jì)律總結(jié)大會講話
評論
0/150
提交評論