天天看點

s3c2410上搭建QT/Embedded4.8.5開發環境(一)---環境導讀 QT各版本起源 Qt,Qt/E,Qtopia Core, Qtopia這些版本之間的差別和聯系  The end/QtEmbedded概述

近期參加個比賽,需要用到博創s3c2410的開發闆,搭建qt/embedded的環境,真費了不少功夫,開始想用那個qtopia的桌面的,但是移植老是不成功,後來看看用的是centos6.4,但是開發闆CD光牒裡提供的,qtopia(版本竟然還是2.1.1)這個東西太老了,已經絕版了。在這裡給各位以後開發的兄弟提個醒,qtopia這就是個坑.

qt 的版本是按照不同的圖形系統來劃分的,目前分為四個版本:

win32版,适用于windows平台;

x11版,适合于使用了x系統的各種 linux 和 unix的平台;

mac版,适合與蘋果macos;

embedded版,适合于具有幀緩沖(framebuffer)的linux 的平台。

qt 在剛出現的時候,對于linux和unix系統,隻有建構于xlib之上的x11版。但随着linux作業系統在嵌入式領域的應用日漸廣泛,qt推出了嵌入式的版本qt/e。由于嵌入式受限的硬體環境往往難以運作龐大的x伺服器,qt/e去掉了x lib的依賴而直接工作于frame buffer上,因而效率更高,但它并不是qt的子集,而應該是超集,部分機制(如qcop等)不能用于qt/x11中。

值得一題的是qt/e現在的源碼包名字叫qt-everywhere,它跟qtlibraries 4.8.5 for linux/x11其實是一樣的東西,隻不過用的編譯器不同,就能配出不同的環境,qt-everywhere意思就是說與qt4一樣的代碼可以同時運作在嵌入式環境和pc主機中。

一般命名為qtopia-opensource,最初是sourceforge.net上的一個開源項目,全稱是qt palmtop environment,是建構于qt/e之上一個類似桌面系統的應用環境,包括了pda和手機等掌上系統常見的功能如電話簿、日程表等。後來qtopia 已經成為了trolltech的又一個主打産品,為基于linux作業系統的pda和手機提供了一個完整的圖形環境。相比之下,qt/e是qtopia基礎類庫

在2008年9月30日前稱qtopia。從qtopia 4.4.0以後的版本開始,稱為qtextended 4.4.1。

但是其最終在開發中止2008年3月5日,版本停留在4.4.3,在版本4之前,qt/e和qtopia是不同的兩套程式,qt/e是基礎類庫,qtopia是建構于qt/e之上的一系列應用程式。但從版本4開始,trolltech将qt/e并入到了qtopia産品線中去了,并推出了新的qtopia4。但實際上原來的qt/e仍然作為基礎類庫,隻是改名為qtopia core了,也許又感覺qtopia core跟qtopia容易讓人搞混,是以又改名為qt-embedded-linux-opensource-linux/wince(qt也支援wince )。它作為嵌入式版本的核心,既可以與qtopia配合,也可以獨立使用。而原來的qtopia則被分成幾層,核心的應用架構和插件系統被稱為qtopia platform,上層的應用程式則按照不同的目标使用者分為不同的包,如qtopai pda,qtopia phone。

qte的改名過程,qte-->qtopia core-->qt-embedded-linux-xxxx-qt-everywhere

qtopia這個東西目前已經停止維護了,我們用這個東西很麻煩,也很舊

是以我們選用qt/embedded4.8.5開發

在linux中分别安裝應用于不同平台的qt:pc平台;嵌入式x86平台;arm平台。

這三者pc版、嵌入式x86版和arm版的差別主要展現在:當configure時分别加了不同的參數,

具體差別是:

編譯好的程式,用于在arm平台上運作。這個主要是用來編譯,因為要下載下傳到開發闆上,需要arm版的qte的庫檔案,編譯後直接下載下傳到開發闆運作;

嵌入式x86平台:基于frame-buffer,在pc機上可以模拟應用程式在arm開發闆上的運作情況。用此編譯好的程式,隻用“./”指令不可以運作,必須加上參數 [ -qvfb ]–qws

這個自帶有個模拟器,可以模拟出arm開發闆的樣子出來。友善調試;

pc平台(x11平台):在linux中全安裝qt,用它編譯好程式後,在x11環境中直接用“./”就可運作。

值得注意的是前面我們編譯x86的版本是基于frame-buffer機制的,運作使用使用qvfb,它是一個x11平台的模拟器,用來模拟qt embedded的工作流程。是以qvfb必須用x11平台的qt版本來編譯

或者我們幹脆可以直接從包管理器中下載下傳一個qvfb

轉載:http://blog.csdn.net/gatieme/article/details/22890147

繼續閱讀