成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Linux中移植QT QTOPIA

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

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

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

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

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

1、準備工作

(1) 目標

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

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

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

系統平臺: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的桌面環境程序)  
  4. tmake-1.11.tar.gz (編譯時會用到)  
  5. e2fsprogs-1.35.tar.gz (只使用其中的uuid的庫) 

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

(3)環境的建立

  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機上編譯的工作環境,arm-qtopia是arm平臺的交叉編譯工作環境,qt-x11是兩者公用的。

接下來還必須編譯qt-x11,主要是為了編譯生成其中的qtdesigner和qvfb。qvfb程序在系統中并未安裝,需要我們自己編譯。qtdesigner是和qt庫的版本是相關的,當我們使用PC機上和QTE版本不符的qtdesigner時,可能在PC機上的qt-x11能使用的控件在QTE上并未實現,導致應用程序編譯不成功。所以,我們使用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平臺編譯

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

  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目錄下是否已經有了qt的庫了?

#p#

(2)編譯QTOPIA

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

(3)測試QTOPIA

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

  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目錄下執行bin/qpe來運行。

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

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

3、 目標平臺交叉編譯

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

  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編譯器下編譯卻不成功.根據測試,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-即可.

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

【編輯推薦】

淺談Qt中多線程編程

Qt Symbian SDK 安裝

在Qt中如何寫控制臺程序

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

基于Qt Web瀏覽器設計與實現

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

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-20 09:26:38

Linux qtopia QT

2011-06-20 09:58:17

Qt Qtopia 移植

2011-06-20 09:06:05

Qt Qtopia

2011-06-29 09:20:41

Qt Embedded 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 環境變量

2011-07-05 16:31:17

Qtopia 交叉編譯

2011-06-15 18:38:17

Linux Qt Symbian

2011-07-05 11:10:23

Linux Qt 移植

2011-07-05 10:55:14

Linux Qt 移植

2011-06-15 18:20:20

Qt 移植 Android

2011-06-13 17:46:07

Qt 串口通信

2011-06-20 10:27:24

Mini2440 Qtopia Qt

2011-07-04 10:56:10

Qt 移植 編譯

2011-06-09 18:24:36

QT Wince

2011-07-02 13:42:24

Qt 移植
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97日日碰人人模人人澡分享吧 | 国产成人精品一区二区 | 亚洲成av| 日本不卡一区二区三区 | 黑人巨大精品欧美一区二区一视频 | 亚洲网站在线观看 | 一区二区三区韩国 | 超碰欧美 | 欧美综合在线视频 | 国产精品视频www | 久久久91精品国产一区二区三区 | 九七午夜剧场福利写真 | 精品国产乱码久久久久久丨区2区 | 色婷婷综合在线观看 | 欧美成人精品一区二区男人看 | 欧美最猛性xxxxx亚洲精品 | 四虎影院美女 | 999久久久久久久久6666 | 国产专区在线 | 国产一区二区三区在线免费 | 国产成人精品免费视频 | 欧美一区二 | hitomi一区二区三区精品 | 看真人视频一级毛片 | 亚洲午夜视频在线观看 | 一级大片网站 | 国产视频一区在线 | 精品9999| 日韩久久久久久 | 一区二区三区四区国产精品 | 日韩欧美网 | 精品国产一区二区三区久久影院 | 中文字幕视频一区二区 | 九九在线视频 | 亚洲欧美日韩一区 | 国产在线观看免费 | 成人影院一区二区三区 | 丁香五月缴情综合网 | 欧美一级在线 | wwww.xxxx免费 | 亚洲自拍偷拍欧美 |