自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux中移植QT QTOPIA

移動開發(fā)
本文介紹一下關于QT QTOPIA在linux上的移植,Qtopia 是Trolltech 公司為采用嵌入式Linux操作系統(tǒng)的消費電子設備而開發(fā)的綜合應用平臺, Qtopia包含完整的應用層、靈活的用戶界面、窗口操作系統(tǒng)、應用程序啟動程序以及開發(fā)框架。

Qtopia 是Trolltech 公司為采用嵌入式Linux操作系統(tǒng)的消費電子設備而開發(fā)的綜合應用平臺, Qtopia包含完整的應用層、靈活的用戶界面、窗口操作系統(tǒng)、應用程序啟動程序以及開發(fā)框架。

QT是目前在linux上使用較廣的一個圖形系統(tǒng)。用戶經(jīng)常配合KDE桌面環(huán)境來使用。需要注意的是我們看到的并操作的是KDE,而不是QT。QT只是一套庫函數(shù)(類庫),KDE才是可執(zhí)行程序.同時KDE為了其他程序方便的對其操作,也提供一套庫函數(shù)(類庫)。

在PC機上的QT是基于X11圖形系統(tǒng)的,在嵌入設備中往往不需要這么累贅,只需使用QTE(QT Embedded)即可包括PC平臺中X11和QT庫的功能。

另一方面,嵌入設備受許多條件的限制,桌面系統(tǒng)也不能直接使用PC機上已有的系統(tǒng)。QTOPIA就是相當于KDE的桌面系統(tǒng).根據(jù)具體嵌入設備的需要可以配置成phone和pocket pc兩種。

1、準備工作

(1) 目標

首先要明確將要干的是什么,將怎么做。

我們的目標很明確??就是在自己的開發(fā)板上使用基于QTE的桌面系統(tǒng)QTOPIA。

我們的工作往往是先在PC完成以后移植到ARM平臺上;先編譯好QTE的庫,再編譯QTOPIA。因為這個系統(tǒng)和具體的設備有關(例如:觸摸屏、時鐘、電源管理設備等),所以***還需要做設備接口的移植工作。
   
(2)軟件包

系統(tǒng)平臺:RedHat Array(完全安裝)

  1. qt-embedded-2.3.7.tar.gz (qte的庫)  
  2. qt-x11-2.3.2.tar.gz (為了生成相應的qtdesigner和qvfb)  
  3. qtopia-free-1.7.0.tar.gz (qte的桌面環(huán)境程序)  
  4. tmake-1.11.tar.gz (編譯時會用到)  
  5. e2fsprogs-1.35.tar.gz (只使用其中的uuid的庫) 

當下載完這些包以后我們先建立一個工作環(huán)境。假設所有軟件包都下載在用戶目錄下,通常都是/root。

(3)環(huán)境的建立

  1. # cd ~  
  2. # mkdir x86-qtopia  
  3. # tar zxvf qt-x11-2.3.2.tar.gz  
  4. # mv qt-2.3.2 qt-x11  
  5. # cd x86-qtopia  
  6. # tar zxvf ../tmake-1.11.tar.gz  
  7. # tar zxvf ../qt-embedded-2.3.7.tar.gz  
  8. # tar zxvf ../qtopia-free-1.7.0.tar.gz  
  9. # tar zxvf ../e2fsprogs-1.35.tar.gz  
  10. # mv tmake-1.11 tmake  
  11. # mv qt-2.3.7/ qt  
  12. # mv qtopia-free-1.7.0 qtopia  
  13. # mv e2fsprogs-1.35 e2fsprogs  
  14. # cp x86-qtopia arm-qtopia -rf 

記住,用戶目錄下的x86-qtopia目錄是PC機上編譯的工作環(huán)境,arm-qtopia是arm平臺的交叉編譯工作環(huán)境,qt-x11是兩者公用的。

接下來還必須編譯qt-x11,主要是為了編譯生成其中的qtdesigner和qvfb。qvfb程序在系統(tǒng)中并未安裝,需要我們自己編譯。qtdesigner是和qt庫的版本是相關的,當我們使用PC機上和QTE版本不符的qtdesigner時,可能在PC機上的qt-x11能使用的控件在QTE上并未實現(xiàn),導致應用程序編譯不成功。所以,我們使用2.3版本的QTE時,必須使用相同版本的qt-x11編譯生成的qtdesigner和qvfb。

  1. # cd ~/qt-x11  
  2. # export QTDIR=$PWD  
  3. # echo yes | ./configure -static -no-xft -no-opengl -no-sm  
  4. # make -C src/moc  
  5. # cp src/moc/moc bin  
  6. # make -C src  
  7. # make -C tools/designer  
  8. # make -C tools/qvfb  
  9. # cp tools/qvfb/qvfb bin  
  10. # strip bin/uic bin/moc bin/designer bin/qvfb  
  11. # cp qt-x11/bin/* qt/bin -f  
  12. # cp qt-x11/bin/* qt/bin -f 

2、PC平臺編譯

編譯之前做一下準備工作:打開一個控制臺之后設置環(huán)境變量。

  1. # cd ~/x86-qtopia  
  2. # export QTDIR=$PWD/qt  
  3. # export QPEDIR=$PWD/qtopia  
  4. # export TMAKEDIR=$PWD/tmake  
  5. # export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++  
  6. # export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH 

(1)編譯QTE

  1. # cd $QTDIR  
  2. # cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/ -f  
  3. # (echo yes ; echo no) | ./configure -platform linux-generic-g++  -qconfig qpe -depths 16,24,32  
  4. # make -C src clean  
  5. # make -C src 

看一下QTDIR目錄下是否已經(jīng)有了qt的庫了?

#p#

(2)編譯QTOPIA

  1. # cd $QPEDIR/src  
  2. # ./configure  
  3. # make clean  
  4. # make 

(3)測試QTOPIA

激動的時刻來了,如果這個步驟成功將意味著可以做應用開發(fā)了。

  1. # cd ~/x86-qtopia  
  2. # mkdir dist  
  3. # cd dist  
  4. # cp -af ../qt/lib/ .  
  5. # cp -af ../qtopia/apps .  
  6. # cp -af ../qtopia/bin .  
  7. # cp -af ../qtopia/plugins .  
  8. # cp -af ../qtopia/i18n .  
  9. # cp -af ../qtopia/pics . 

因為Security.png有點錯誤,所以必須進行一下操作:

  1. # cd pics  
  2. # pngtopnm Security.png>a.pnm  
  3. # pnmtopng a.pnm>Security.png 

因為qpe運行的時候,當前目錄必須是$QTDIR/bin,所以不能在$QTDIR目錄下執(zhí)行bin/qpe來運行。

  1. # export QTDIR=~/x86-qtopia/qt  
  2. # cd $QTDIR/bin  
  3. # ./qvfb &  
  4. # ./qpe & 

看到qpe在qvfb中的界面了嗎?我看到了~!

3、 目標平臺交叉編譯

與PC機上的編譯一樣,打開一個控制臺之后需要設置環(huán)境變量。

  1. # cd ~/arm-qtopia  
  2. # export QTDIR=$PWD/qt  
  3. # export QPEDIR=$PWD/qtopia  
  4. # export TMAKEDIR=$PWD/tmake  
  5. # export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++  
  6. # export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH 

(1)交叉編譯QT

(2) 交叉編譯QTOPIA

4、移植QT中的相關設備接口

(1) 鼠標

(2)觸摸屏

5、移植QTOPIA中的相關設備接口

(1)電源管理設備

6、編寫QT程序并移植

7、編寫QTOPIA程序并移植

  1. X. tips 

1、移植的時候編譯器的版本很重要.qte-2.3.7在redhatArray的3.2編譯器下工作很正常,但在Fedora4的gcc-3.4.2編譯器下編譯卻不成功.根據(jù)測試,PC平臺上使用gcc-3.2可以順利編譯,arm平臺上使用gcc-2.Array5.2可以順利通過(gnuarm的編譯器好像不行,用華恒光盤中的armv4l-unkown-linux-gcc的可以編譯通過)
2、編譯過程中會提示缺少uuid的頭文件和庫,下載e2fsprogs-libs-1.38.tar.gz,里面有uuid的相關代碼.
3、編譯的時候需要指定編譯器,在qt的configs目錄下有許多文件,修改linux-arm-g++-*這些文件中的相關定義.例如:默認使用arm-linux-gcc編譯器,而我使用的是GNUARM的arm-elf-gcc編譯器,替換文件中所有arm-linux-前綴為arm-elf-即可.

小結(jié):前段時間,諾基亞宣布收購從事桌面和移動設備應用架構(gòu)開發(fā)的公司Trolltech。Trolltech以QT架構(gòu)而聞名,這種架構(gòu)是開源KDE的核心。恩,還是比較重要一點!希望本文對你有所幫助!

【編輯推薦】

淺談Qt中多線程編程

Qt Symbian SDK 安裝

在Qt中如何寫控制臺程序

Qt 平臺中使GUI保持響應流暢

基于Qt Web瀏覽器設計與實現(xiàn)

淺談自動化測試工具 QTP腳本的重用

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關推薦

2011-06-20 09:26:38

Linux qtopia QT

2011-06-20 09:58:17

Qt Qtopia 移植

2011-06-29 09:20:41

Qt Embedded Qtopia

2011-06-20 09:06:05

Qt Qtopia

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-13 11:24:55

QT MPlayer 移植

2011-06-23 18:16:59

Qt Qtopia

2011-06-28 13:02:06

Qt Qt 4.7.3 ARM

2011-06-13 11:07:22

QT 移植

2011-06-14 09:21:55

Linux Qt 環(huán)境變量

2011-07-05 16:31:17

Qtopia 交叉編譯

2011-06-15 18:38:17

Linux Qt Symbian

2011-07-05 10:55:14

Linux Qt 移植

2011-07-05 11:10:23

Linux Qt 移植

2011-06-15 18:20:20

Qt 移植 Android

2011-06-13 17:46:07

Qt 串口通信

2011-07-04 10:56:10

Qt 移植 編譯

2011-07-02 13:42:24

Qt 移植

2011-06-20 10:27:24

Mini2440 Qtopia Qt

2011-07-02 13:24:39

QT Linux
點贊
收藏

51CTO技術棧公眾號