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

深度解析嵌入式QT開發(fā)環(huán)境搭建

移動(dòng)開發(fā)
本篇文章介紹的是嵌入式QT開發(fā)環(huán)境搭建,之前有接觸過QT的其他開發(fā)環(huán)境,那么希望本篇文章對(duì)你有所幫組。對(duì)于嵌入式相信各位都有了解。

Qt的各個(gè)版本簡(jiǎn)介:

1.什么是QT

Qt是一個(gè)完整的C++應(yīng)用程序開發(fā)框架。它包含一個(gè)類庫,和用于跨平臺(tái)開發(fā)及國(guó)際化的工具。Qt API在所有支持的平臺(tái)上都是相同的,Qt工具在這些平臺(tái)上的使用方式也一致, 因而Qt應(yīng)用的開發(fā)和部署與平臺(tái)無關(guān)。

2.什么是Qtopia

Qtopia是一個(gè)面向嵌入式Linux的全方位應(yīng)用程序開發(fā)平臺(tái),同時(shí)也是用于基于Linux的PDA(個(gè)人數(shù)字助理),智能電話(Smartphone)以及其他移動(dòng)設(shè)備的用戶界面。簡(jiǎn)單地說,Qtopia實(shí)質(zhì)上是一組關(guān)于PDA和智能電話的應(yīng)用程序結(jié)合,如果需要開發(fā)這類產(chǎn)品可以在這組程序的基礎(chǔ)上迅速構(gòu)建出PDA或者智能電話。Qtopia實(shí)質(zhì)上依賴Qt/Embedded。

3.什么是Qt/Embedded

Qt/Embedded是一個(gè)完整的自包含GUI和基于Linux嵌入式平臺(tái)開發(fā)工具。這個(gè)開發(fā)工具的名字好像最容易混淆,當(dāng)然Qt/Embedded是最熟悉的名字,好像Qtopia Core說的也是它。最近,奇趣公司又該名字了,它的新名字叫做qt-embedded-linux-xxxx,看來這個(gè)Qt/Embedded的馬甲還很多哈。

下面就是搭建Qt開發(fā)平臺(tái)了,我的平臺(tái)是fedora core 7,需要的Qt版本有兩個(gè):

  1. qt-x11-opensource-src-4.3.2.tar.gz  
  2. qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2 

qt-x11版本可以產(chǎn)生Qt開發(fā)工具,如designer等等,最重要的是可以得到qvfb,嵌入式的開發(fā)有了qvfb,就可以不需要實(shí)際的開發(fā)板,也可以開發(fā)Qt應(yīng)程序。qt-embedded版本就是專門用于嵌入式方面的版本。下面是安裝步驟:

1. 解壓這兩個(gè)qt包

  1. a) tar –jxvf qt-x11-opensource-src-4.3.2.tar.gz  
  2. b) tar –jxvf   
  3. qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2  
  4. c) cp qt-embedded-linux-opensource-src-4.4.0-rc1  
  5. qt-embedded-linux-opensource-src-4.4.0-rc1-x86  
  6. d) mv qt-embedded-linux-opensource-src-4.4.0-rc1  
  7. qt-embedded-linux-opensource-src-4.4.0-rc1-arm 

這里,qt-embedded有兩個(gè)復(fù)制:qt-embedded-linux-opensource-src-4.4.0-rc1-x86qt-embedded-linux-opensource-src-4.4.0-rc1-arm,根據(jù)他們的名字可以知道前者是適合x架構(gòu)的,后者適合arm架構(gòu)為什么需要兩個(gè)呢?如果有開發(fā)板的話,可以只編譯qt-embedded版本成arm架構(gòu)的就可以了,但是很多時(shí)候用qvfb的話,開發(fā)會(huì)方便很多,所以多編譯一個(gè)x86架構(gòu)的也不錯(cuò)。這里是否有些疑問,qt-x11也是適合x86結(jié)構(gòu)的,這不是和qt-embedded重復(fù)了嗎?

答案是這樣的,qt-embedded版本只能在嵌入式板子上面運(yùn)行,編譯成x86架構(gòu)的程序也只能在x86的嵌入式板子上跑。前面說過,我們需要qvfb來開發(fā),但是qvfb只能執(zhí)行x86架構(gòu)的應(yīng)用程序,所以需要讓qt-embedded生成關(guān)于x86的庫和其他文件。而將qt-embedded編譯成arm,又是為什么呢?道理很簡(jiǎn)單,我最終的qt應(yīng)用程序需要在arm架構(gòu)上面運(yùn)行,當(dāng)然需要這方面的庫,所以編譯成arm也就順理成章了。

簡(jiǎn)單的總結(jié)一下,首先,使用qt-x11提供的庫和開發(fā)工具開發(fā)出qt應(yīng)用程序,然后使用qt-embedded關(guān)于x86庫和工具再次編譯我們開發(fā)qt應(yīng)用程序,這是所得到的可執(zhí)行文件就可以在qvfb上運(yùn)行了,最后,使用qt-embeddedd的arm庫再次編譯就可以得到在arm上能運(yùn)行的可執(zhí)行程序。很明顯,如果有開發(fā)板,第二步是可要可不要的(最好是要),如果沒有開發(fā)板的話,第三步也就沒必要了,這樣就不需要將qt-embedded編譯成適合arm架構(gòu)的。

具體步驟與說明:

1. 下載源碼包

  1. qt-x11-opensource-src-4.5.0.tar.bz2  
  2. qt-embedded-linux-opensource-src-4.5.0.tar.bz2 

下載地址:ftp://ftp.qtsoftware.com/qt/source/

2.編譯及安裝qt-x11-opensource-src-4.5.0

qt-x11版本可以產(chǎn)生Qt開發(fā)工具,如designer等等,最重要的是可以得到qvfb,嵌入式的開發(fā)有了qvfb,就可以不需要實(shí)際的開發(fā)板,也可以開發(fā)Qt應(yīng)程序。qt-embedded版本就是專門用于嵌入式方面的版本。

  1. tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2  
  2. cd qt-x11-opensource-src-4.5.0  
  3. ./configure  
  4. make  
  5. make install 

歷經(jīng)漫長(zhǎng)的編譯過程,約一個(gè)半小時(shí),默認(rèn)安裝在/usr/local/Trolltech/Qt-4.5.0下.編譯完成后源程序不要?jiǎng)h除,還有用。

#p#

3.編譯及安裝qt-embedded-linux-opensource-src-4.5.0

在用戶目錄下建立一個(gè)src目錄,用于存放編譯源文件qt-embedded-linux-opensource-src-4.5.0.tar.bz2。將其解壓得到qt-embedded-linux-opensource-src-4.5.0,重命名為qt-embedded-linux-opensource-src-4.5.0-x86.再次解壓qt-embedded-linux-opensource-src-4.5.0.tar.bz2,并重命令為qt-embedded-linux-opensource-src-4.5.0-arm.為什么有兩個(gè)復(fù)制呢?我們可以從他們的名字上就不難看出前者是適合x架構(gòu)的,后者適合arm架構(gòu)的,如果有開發(fā)板的話,可以只編譯qt-embedded版本成arm架構(gòu)的就可以了,但是很多時(shí)候用qvfb的話,開發(fā)會(huì)方便很多,所以多編譯一個(gè)x86架構(gòu)的也不錯(cuò)。

  1. mkdir ~/src  
  2. mv qt-embedded-linux-opensource-src-4.5.0.tar.bz2 ~/src  
  3. tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2  
  4. mv qt-embedded-linux-opensource-src-4.5.0  
  5. qt-embedded-linux-opensource-src-4.5.0-x86  
  6. tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2  
  7. mv qt-embedded-linux-opensource-src-4.5.0  
  8. qt-embedded-linux-opensource-src-4.5.0-arm  
  9. cd qt-embedded-linux-opensource-src-4.5.0-x86  
  10. ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86   
  11. -embedded  
  12. x86 -qvfb  
  13. make  
  14. make install  
  15. -------OK!qt-embedded-x86被安裝在/usr/local/Trolltech/QtEmbedded-4.5.0-x86下.  
  16. cd qt-embedded-linux-opensource-src-4.5.0-arm  
  17. ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm   
  18. -embedded  
  19. arm  
  20. make  
  21. make install 

qt-embedded-arm被安裝在/usr/local/Trolltech/QtEmbedded-4.5.0-arm下.。

4.至此我們已經(jīng)安裝好了qt-x11版,即在PC機(jī)上運(yùn)行的QT,qt-embedded-x86版(x86體系的嵌入式板子上運(yùn)行的QT)和qt-embedded-arm(arm板子上運(yùn)行的QT).

設(shè)置環(huán)境變量

(1)qt-x11:

  1. vi setenv.sh 

添加如下內(nèi)容:

  1. PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH  
  2. LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH 

保存退出.移到/usr/local/Trolltech/Qt-4.5.0中。

(2)qt-embedded-x86:

  1. vi setenv.sh 

添加如下內(nèi)容:

  1. QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86  
  2. PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH  
  3. LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH 

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86中。

(3)qt-embedded-arm:

  1. vi setenv.sh 

添加如下內(nèi)容:

  1. QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm  
  2. PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH  
  3. LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH 

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。

我們?cè)谶\(yùn)行的時(shí)候分別運(yùn)行對(duì)應(yīng)的腳本即可,比如我們要用qt-x11:

  1. cd /usr/local/Trolltech/Qt-4.5.0  
  2. source setenv.sh 

然后就可以用qmake designer等工具了.

#p#

5.做到這一步還有qvfb沒有編譯,到qt-x11-opensource-src-4.5.0中重新編譯qvfb即可

  1. cd qt-x11-opensource-src-4.5.0  
  2. cd /tools/qvfb  
  3. make 

--會(huì)在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我們將它c(diǎn)opy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下

cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

6.做一個(gè)測(cè)試

  1. cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86  
  2. source setenv.sh  
  3. cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books  
  4. qvfb -width 640 -height 480 &  
  5. ./books -qws 

出錯(cuò)信息一般為

Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such file  or directory這種情況發(fā)生最多的是編譯Qt-Embedded的x86版本,希望在qvfb上運(yùn)行應(yīng)用時(shí)

使用者在第一步運(yùn)行qvfb后,第二步運(yùn)行./myapp -qws,出現(xiàn)以上的提示錯(cuò)誤。原因是Qt-Embedded在查找系統(tǒng)的顯示設(shè)備時(shí),默認(rèn)去尋找LinuxFb,也即Linux的/dev/fb0設(shè)備,但是如果Qt-Embedded安裝了其它顯示設(shè)備,比如qvfb,則可以在qvfb上顯示,但是需要一個(gè)插件(或者說驅(qū)動(dòng),可能會(huì)和設(shè)備驅(qū)動(dòng)混淆),使Qt-Embedded能使用qvfb。 為了作到這一點(diǎn),需要在編譯Qt-Embedded時(shí)的configure命令加上如下選項(xiàng)

  1. ./configure -plugin-gfx-qvfb -plugin-kbd-qvfb -plugin-mouse-qvfb   
  2. 或./configure -qt-gfx-qvfb -qt-kbd-qvfb  

-qt-mouse-qvfb如果,你不想重新編譯Qt-Embedded,也可以單獨(dú)編譯qvfb的gfxdrivers,命令如下

  1. $ cd   
  2. qt-embedded-linux-opensource-src-4.5.1/src/plugins/gfxdrivers/qvfb/$/usr/local/Trolltech/QtEmbedded-4.5.1/bin/qmake$  

sudo make install對(duì)應(yīng)所在的路徑,在大家的機(jī)器上可能不盡相同,領(lǐng)會(huì)意思就行

【編輯推薦】

 Qt的未來將會(huì)如何?

 Qt Symbian SDK 安裝

詳解Qt Lighthouse和Wayland

嵌入式系統(tǒng)的系統(tǒng)測(cè)試和可靠性評(píng)估

如何管理嵌入式Wi-Fi設(shè)備的訪問控制

Qt和KDE在未來將面臨新的挑戰(zhàn)和機(jī)遇

 

責(zé)任編輯:zhaolei 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2011-07-05 15:42:02

QT 嵌入式 Embedded

2011-06-13 14:00:55

Qt Designer linux

2011-09-06 11:25:08

2011-06-21 11:30:31

嵌入式 Qt

2011-06-28 15:09:38

Qt Maemo

2011-06-17 08:59:27

QT Embedded Arm

2011-01-14 13:13:23

嵌入式Linux開發(fā)

2011-04-22 10:02:02

Ubuntu嵌入式開發(fā)環(huán)境

2009-06-11 11:09:02

Linux嵌入式開發(fā)環(huán)境

2011-07-05 15:59:18

Qt 嵌入式 linux

2009-07-17 16:06:59

ARM嵌入式開發(fā)

2011-09-06 10:36:10

QT平臺(tái)

2014-05-26 15:14:04

DIGIA嵌入式Qt

2021-08-03 11:52:49

模擬器開發(fā)嵌入式

2010-01-13 09:15:35

嵌入式

2021-10-26 21:50:10

Rust嵌入式開發(fā)

2011-01-06 15:11:09

嵌入式linux

2009-12-23 10:33:30

Silverlight

2020-03-23 10:15:10

Google 開源技術(shù)

2010-01-06 09:53:08

嵌入式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)