QtEmbedded開發介紹之配置參數篇

QtEmbedded開發介紹之配置參數篇上

 

 

 

 

經常有人會在BBS和QQ羣上大喊:怎麼裁剪Qt,怎麼安裝那麼困難啊。

每當我看見時,都是非常無奈,其實Qt有套良好的配置安裝機制,跟大多數linux程序一樣,典型的先configure,然後make,最後make install三部曲。而如果要裁剪參數,其實可以在configure加上對應的參數來實現,通過合理的選擇,完全可以做到滿足項目的開發。對於嵌入式開發來說,資源是極其重要的,這就要求我們應該對應不同的項目開發,對Qte進行不同的裁剪來實現。

其實,在前面的減少Qt編譯時間暨簡單Qt裁剪已經對這個題目有了非常詳細的概述,並且通過qconfig工具可以做到控件級的裁剪,但是如果能在configure階段,能搞清楚參數,我想對於開發也是有很大的幫助。

爲了與時俱進,本人的例子都是參照qt-embedded-linux-opensource-src-4.5.x系列。

當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看就OK

Configure options:

The defaults (*) are usually acceptable. A plus (+) denotes a default value
that needs to be evaluated. If the evaluation succeeds, the feature is
included. Here is a short explanation of each option:

*  -release ……….. Compile and link Qt with debugging turned off.
-debug …………. Compile and link Qt with debugging turned on.
-debug-and-release . Compile and link two versions of Qt, with and without
debugging turned on (Mac only).

-developer-build…. Compile and link Qt with Qt developer options (including auto-tests exporting)

-opensource……… Compile and link the Open-Source Edition of Qt.
-commercial……… Compile and link the Commercial Edition of Qt.

*  -shared ………… Create and use shared Qt libraries.
-static ………… Create and use static Qt libraries.

*  -no-fast ……….. Configure Qt normally by generating Makefiles for all
project files.
-fast ………….. Configure Qt quickly by generating Makefiles only for
library and subdirectory targets.  All other Makefiles
are created as wrappers, which will in turn run qmake.

-no-largefile …… Disables large file support.
+  -largefile ……… Enables Qt to access files larger than 4 GB.

*  -no-exceptions ….. Disable exceptions on compilers that support it.
-exceptions …….. Enable exceptions on compilers that support it.

-no-accessibility .. Do not compile Accessibility support.
*  -accessibility ….. Compile Accessibility support.

-no-stl ………… Do not compile STL support.
*  -stl …………… Compile STL support.

-no-sql-<driver> … Disable SQL <driver> entirely.
-qt-sql-<driver> … Enable a SQL <driver> in the QtSql library, by default
none are turned on.
-plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
at run time.

Possible values for <driver>:
[  db2 ibase mysql oci odbc psql sqlite sqlite2 tds ]

-system-sqlite ….. Use sqlite from the operating system.

-no-qt3support ….. Disables the Qt 3 support functionality.
*  -qt3support …….. Enables the Qt 3 support functionality.

-no-xmlpatterns …. Do not build the QtXmlPatterns module.
+  -xmlpatterns ……. Build the QtXmlPatterns module.
QtXmlPatterns is built if a decent C++ compiler
is used and exceptions are enabled.

-no-phonon ……… Do not build the Phonon module.
+  -phonon ………… Build the Phonon module.
Phonon is built if a decent C++ compiler is used.
-no-phonon-backend.. Do not build the platform phonon plugin.
+  -phonon-backend….. Build the platform phonon plugin.

-no-svg ………… Do not build the SVG module.
+  -svg …………… Build the SVG module.

-no-webkit ……… Do not build the WebKit module.
+  -webkit ………… Build the WebKit module.
WebKit is built if a decent C++ compiler is used.

-no-scripttools …. Do not build the QtScriptTools module.
+  -scripttools ……. Build the QtScriptTools module.

-platform target … The operating system and compiler you are building
on (qws/linux-x86-g++).

See the README file for a list of supported
operating systems and compilers.

-no-mmx ………… Do not compile with use of MMX instructions.
-no-3dnow ………. Do not compile with use of 3DNOW instructions.
-no-sse ………… Do not compile with use of SSE instructions.
-no-sse2 ……….. Do not compile with use of SSE2 instructions.

-qtnamespace <name>  Wraps all Qt library code in ‘namespace <name> {…}’.
-qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.

-D <string> …….. Add an explicit define to the preprocessor.
-I <string> …….. Add an explicit include path.
-L <string> …….. Add an explicit library path.

-help, -h ………. Display this information.

Third Party Libraries:

-qt-zlib ……….. Use the zlib bundled with Qt.
+  -system-zlib ……. Use zlib from the operating system.
See http://www.gzip.org/zlib

-no-gif ………… Do not compile the plugin for GIF reading support.
*  -qt-gif ………… Compile the plugin for GIF reading support.
See also src/plugins/imageformats/gif/qgifhandler.h

-no-libtiff …….. Do not compile the plugin for TIFF support.
-qt-libtiff …….. Use the libtiff bundled with Qt.
+  -system-libtiff …. Use libtiff from the operating system.
See http://www.libtiff.org

-no-libpng ……… Do not compile in PNG support.
-qt-libpng ……… Use the libpng bundled with Qt.
+  -system-libpng ….. Use libpng from the operating system.
See http://www.libpng.org/pub/png

-no-libmng ……… Do not compile the plugin for MNG support.
-qt-libmng ……… Use the libmng bundled with Qt.
+  -system-libmng ….. Use libmng from the operating system.
See http://www.libmng.com

-no-libjpeg …….. Do not compile the plugin for JPEG support.
-qt-libjpeg …….. Use the libjpeg bundled with Qt.
+  -system-libjpeg …. Use libjpeg from the operating system.
See http://www.ijg.org

-no-openssl …….. Do not compile support for OpenSSL.
+  -openssl ……….. Enable run-time OpenSSL support.
-openssl-linked …. Enabled linked OpenSSL support.

-ptmalloc ………. Override the system memory allocator with ptmalloc.
(Experimental.)

Additional options:

-make <part> ……. Add part to the list of parts to be built at make time.
(libs tools examples demos docs translations)
-nomake <part> ….. Exclude part from the list of parts to be built.

-R <string> …….. Add an explicit runtime library path to the Qt
libraries.
-l <string> …….. Add an explicit library.

-no-rpath ………. Do not use the library install path as a runtime
library path.
+  -rpath …………. Link Qt libraries and executables using the library
install path as a runtime library path. Equivalent
to -R install_libpath

-continue ………. Continue as far as possible if an error occurs.

-verbose, -v ……. Print verbose information about each step of the
configure process.

-silent ………… Reduce the build output so that warnings and errors
can be seen more easily.

*  -no-optimized-qmake … Do not build qmake optimized.
-optimized-qmake …… Build qmake optimized.

-no-nis ………… Do not compile NIS support.
*  -nis …………… Compile NIS support.

-no-cups ……….. Do not compile CUPS support.
*  -cups ………….. Compile CUPS support.
Requires cups/cups.h and libcups.so.2.

-no-iconv ………. Do not compile support for iconv(3).
*  -iconv …………. Compile support for iconv(3).

-no-pch ………… Do not use precompiled header support.
*  -pch …………… Use precompiled header support.

-no-dbus ……….. Do not compile the QtDBus module.
+  -dbus ………….. Compile the QtDBus module and dynamically load libdbus-1.
-dbus-linked ……. Compile the QtDBus module and link to libdbus-1.

-reduce-relocations ….. Reduce relocations in the libraries through extra
linker optimizations (Qt/X11 and Qt for Embedded Linux only;
experimental; needs GNU ld >= 2.18).

-no-separate-debug-info . Do not store debug information in a separate file.
*  -separate-debug-info …. Strip debug information into a separate .debug file.

Qt for Embedded Linux only:

-xplatform target … The target platform when cross-compiling.

-no-feature-<feature> Do not compile in <feature>.
-feature-<feature> .. Compile in <feature>. The available features
are described in src/corelib/global/qfeatures.txt

-embedded <arch> …. This will enable the embedded build, you must have a
proper license for this switch to work.
Example values for <arch>: arm mips x86 generic

-armfpa …………. Target platform is uses the ARM-FPA floating point format.
-no-armfpa ………. Target platform does not use the ARM-FPA floating point format.

The floating point format is usually autodetected by configure. Use this
to override the detected value.

-little-endian …… Target platform is little endian (LSB first).
-big-endian ……… Target platform is big endian (MSB first).

-host-little-endian . Host platform is little endian (LSB first).
-host-big-endian …. Host platform is big endian (MSB first).

You only need to specify the endianness when
cross-compiling, otherwise the host
endianness will be used.

-no-freetype …….. Do not compile in Freetype2 support.
-qt-freetype …….. Use the libfreetype bundled with Qt.
*  -system-freetype …. Use libfreetype from the operating system.
See http://www.freetype.org/

-qconfig local …… Use src/corelib/global/qconfig-local.h rather than the
default (full).

-depths <list> …… Comma-separated list of supported bit-per-pixel
depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and ‘all’.

-qt-decoration-<style> ….Enable a decoration <style> in the QtGui library,
by default all available decorations are on.
Possible values for <style>: [ styled windows default ]
-plugin-decoration-<style> Enable decoration <style> as a plugin to be
linked to at run time.
Possible values for <style>: [  default styled windows ]
-no-decoration-<style> ….Disable decoration <style> entirely.
Possible values for <style>: [ styled windows default ]

-no-opengl ………. Do not support OpenGL.
-opengl <api> ……. Enable OpenGL ES support
With no parameter, this will attempt to auto-detect OpenGL ES 1.x
or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.

NOTE: A QGLScreen driver for the hardware is required to support
OpenGL ES on Qt for Embedded Linux.

-qt-gfx-<driver> … Enable a graphics <driver> in the QtGui library.
Possible values for <driver>: [ linuxfb transformed qvfb vnc multiscreen ]
-plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
linked to at run time.
Possible values for <driver>: [  ahi directfb hybrid linuxfb powervr qvfb transformed vnc ]
-no-gfx-<driver> … Disable graphics <driver> entirely.
Possible values for <driver>: [ linuxfb transformed qvfb vnc multiscreen ]

-qt-kbd-<driver> … Enable a keyboard <driver> in the QtGui library.
Possible values for <driver>: [ tty usb sl5000 yopy vr41xx qvfb ]

-plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
at runtime.
Possible values for <driver>: [  linuxis sl5000 usb vr41xx yopy ]

-no-kbd-<driver> … Disable keyboard <driver> entirely.
Possible values for <driver>: [ tty usb sl5000 yopy vr41xx qvfb ]

-qt-mouse-<driver> … Enable a mouse <driver> in the QtGui library.
Possible values for <driver>: [ pc bus linuxtp yopy vr41xx tslib qvfb ]
-plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
at runtime.
Possible values for <driver>: [  bus linuxis linuxtp pc tslib vr41xx yopy ]
-no-mouse-<driver> … Disable mouse <driver> entirely.
Possible values for <driver>: [ pc bus linuxtp yopy vr41xx tslib qvfb ]

-iwmmxt ………… Compile using the iWMMXt instruction set
(available on some XScale CPUs).

-no-glib ……….. Do not compile Glib support.
+  -glib ………….. Compile Glib support.

這麼參數,看得頭暈了,但是其實仔細分析下,就會發現這些參數大多數是不難的,意思是非常好了解。本人移植qte時,就是一個一個參數配置過來的,當然,有些是可以無視的。接下來,就容本菜菜爲您一一解釋。

我們可以發現,有的參數前面有*號,這就意味這如果我們什麼也不做,直接配置編譯的話,就會把這些參數默認進去。不過,如果什麼也不做,那裁剪也無從說起了。爲了便於分析,接下來,我就是以如下格式進行:

參數
解釋。

-release
這個參數顯而易見,就是編譯Qt以發佈版的模式進行,一般來說,最後系統完成後,庫就應該是發佈版。

-debug
與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。

-debug-and-release
囧,上面那兩個的兒子。

-developer-build
囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。

-opensource
-commercial
這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。

-shared
-static
這兩個參數是指Qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。

-no-fast
-fast
這兩個就很有關係,如果對自己的電腦性能很有信心,那就選第一個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。

-no-largefile
-largefile
顧名思義,支不支持大文件,一般來說,嵌入式裏是不會有從超過4G的大文件的,那就選第一個吧。

-no-exceptions
-exceptions
計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。

-no-accessibility
-accessibility
可訪問性的支持,說實話,這個我真不知道有什麼有用了。等哪天發現了,再來好好解釋。

-no-stl
-stl
是都加入stl的支持,stl,這應該算是C++程序員應該都瞭解了,再不濟,那也總聽說過大名吧。

no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>

這個可要好好說明下,一般來說,對於一個優秀的項目開發,數據庫是必不可少的,qt也自帶了大多數數據庫驅動,可以完美地支持數據庫的使用。對於數據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。一般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱可以自己查看參數裏,有詳細地介紹。

-system-sqlite
sqlite真受歡迎啊,當然那麼優秀的嵌入式數據庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite數據庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。

-no-qt3support
-qt3support
這個也是簡潔易懂,加不加對qt3的支持。

no-xmlpatterns
-xmlpatterns
選擇對xml的支持,如果對網絡無需求的話,就不用加了。

-no-phonon
-phonon
phonon是qt中處理多媒體的模塊,比如放放視頻什麼來着,不過本人從沒用過,也是根據需要選擇的。

-no-phonon-backend
-phonon-backend
與上面類似,只不過這兩是以插件的形式加入支持。

-no-svg
-svg
是否加入svg的支持,svg即可縮放矢量圖形。

-no-webkit
-webkit
是否加入webkit的支持,這可是個好東西,不過如果跟網絡不搭界的話,還是不支持吧。

-no-scripttools
-scripttools
是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。

-platform target
目標平臺,這可是關鍵了,如果不注意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫你移植到開發板上。通常,本人是linux-arm-g++。

-no-mmx
-no-3dnow
-no-sse
-no-sse2
這四個參數是針對CPU的指令集,老實說,我也不甚瞭解,不過,對於開發並不是影響很大。

-qtnamespace
把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。

-qtlibinfix
將所有的qt的.so庫重命名,也沒啥大用處。

好了,以上就是qt最基本的參數,接下來靜待下篇吧囧。

 

 

 

QtEmbedded開發介紹之配置參數篇中

 

 

好了,本菜菜承上啓下,接着來講參數,其實,如果是細心的人就會發現了,其實參數都是有規律的。

什麼規律呢?我們來仔細看看在上篇中關於數據庫驅動的參數是:

-no-sql-<driver>

-qt-sql-<driver>
-plugin-sql-<driver>
-system-sqlite

這是相當明顯的,如果這都看不出來,,囧,那您一定比我近視(本人800度近視。。)

就是說如果是-no-XX-,就說明編譯時不選擇這個參數,如過是-qt-XX-,說明我們可以編譯直接選用qt自帶的驅動,如果是-plugin-XX-,就是將驅動以插件形式編譯,而-system-XXX,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要用第三方的API,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。

接下來,我們接着研究配置參數。

-qt-zlib

-system-zlib

想必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因爲圖形圖像的壓縮都要使用或涉及到這個庫。

-no-gif
-qt-gif

這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是Graphics Interchange Format。

-no-libtiff
-qt-libtiff
-system-libtiff

tiff是一種非常複雜的光柵圖像格式,並且有直接現成的C語言實現庫,因此選擇參數時就有了qt和system,一般來說,科學相關的開發裏可能會用到。

-no-libpng
-qt-libpng
-system-libpng

png的相關參數,一種非失真性壓縮位圖圖形文件格式,其實就是爲了替代gif搞出來的,也是隨實際需要來選擇,當然,也有C語言實現的庫。

-no-libmng
-qt-libmng
-system-libmng
大汗,大汗,這可是超級罕見的東西,QT竟然也能支持,說實話,這個參數我看來就是無視的。MNG是多幀PNG動畫格式,結構極其複雜,基本沒人用。

-no-libjpeg
-qt-libjpeg
-system-libjpeg

jpeg,這麼有名的圖片格式也不用說了,隨需要選擇吧。

-no-openssl
-openssl
-openssl-linked

SSL,Security Socket Layer,是一個安全傳輸協議,在Internet網上進行數據保護和身份確認,而OpenSSL是一個開放源代碼的實現了SSL及相關加密技術的軟件包,在qt中,我們可以選擇直接支持,或者OpenSSL鏈接支持,這個參數也是爲有需要者提供的。

以上是第三方庫的參數選擇,緊接着就是qt附加參數,在附加參數裏,我們可以指定編譯的部分及加入參數來獲取信息。

-make
-nomake

一句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些裏你可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有着積極意義。

-R <string>
-l <string>

這兩個參數是爲編譯時增加一個庫的運行路徑及頭文件的路徑,比如使用tslib作爲開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。

-no-rpath

-rpath

這個參數比較難於理解,簡單地說,就是告訴動態加載器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -R/home/xxxx。

-continue

這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。

-verbose, -v

這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每一步的具體信息。

-no-optimized-qmake
-optimized-qmake

是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。

-no-nis
-nis

是否編譯NIS支持,NIS(網絡信息服務)是一個提供目錄服務的RPC(遠程過程調用)應用服務,當然沒網絡需要的可以再次華麗地無視。

-no-cups
-cups

是否編譯CUPS支持,是不是想問什麼用啊?~~~~囧,開打印店用的。好了,不說冷笑話,CUPS給Unix/Linux用戶提供了一種可靠有效的方法來管理打印。它支持IPP,並提供了LPD,SMB(服務消息塊,如配置爲微軟WINDOWS的打印機)、JetDirect等接口。CUPS還可以瀏覽網絡打印機。它的開發提供者是大名鼎鼎的“水果生產商”—-蘋果公司。

-no-iconv
-iconv

選擇是否編譯iconv支持,iconv是一個計算機程序以及一套應用程序編程接口的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言Qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。

-no-pch
-pch

是否支持預編譯過的頭文件。預編譯頭就是把一個工程中的一部分代碼,預先編譯好放在一個文件裏(通常以.pch爲擴展名),這個文件就稱爲預編譯頭文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不懂就加上。。。

no-dbus
-dbus
-dbus-linked

是否編譯編譯QtDBus模塊。dbus是freedesktop下開源的Linux IPC通信機制,本身Linux 的IPC通信機制包括,管道(fifo),共享內存,信號量,消息隊列,Socket等。在Qt中DBUS是有單獨的模塊的,可見其重要性。

-reduce-relocations

對於額外的庫鏈接器優化,可以減少編譯中的再定位。

no-separate-debug-info
-separate-debug-info
是否存儲debug信息在.debug,一般爲了查錯,還是選擇存儲吧。

好了,中篇就到此爲止,下篇就將着重介紹嵌入式方面的參數。

 

 

 

 

QtEmbedded開發介紹之配置參數篇下

 

 

這篇下隔了好幾天纔出來,這是因爲本菜菜去了下北京,在北京可謂是收穫非凡。

不僅bug大叔請俺和shiroki吃了飯,還見到了傳說中的nokia的qtsoftware的技術顧問——Qt Everywhere的博主。不過據說,被我雷到了…

不扯題外話了,在下里本菜菜會者重講解嵌入式特有的參數,對於開發來說,這些參數相當重要,細微的區別就要可能造成出現一堆不知原因的問題。

下面,就針對每個參數來講解:

-xplatform target

相當淺顯的參數,即交叉編譯的目標平臺,一般來說根據你所要移植的目標板來確定。

-no-feature-<feature>
-feature-<feature>

選取qte的feature編譯,對於這個,我理解爲特性,特性的描述你可以參考src/corelib/global/qfeatures.txt,在這裏面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大爲qte庫瘦身。

-embedded <arch>

嵌入式平臺架構選擇,可以選擇arm,mips,x86及generic,視你的目標平臺決定吧。

-armfpa
-no-armfpa

這個參數也只是針對ARM平臺的,是否加入對於基於ARM的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。

-little-endian
-big-endian

目標平臺的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了

-host-little-endian
-host-big-endia

主機平臺的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。

-no-freetype
-qt-freetype
-system-freetype

選擇freetype,FreeType庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的接口來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人一般使用文泉驛字體。

-qconfig local

使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控件級別的參數。

-depths <list>

顯示的像素位深,也是根據需要來進行吧。

-qt-decoration-<style>
-plugin-decoration-<style>
-no-decoration-<style>

這個是選擇qt的樣式風格,對於需要美化界面的項目來說,可以好好選擇下。

-no-opengl
-opengl <api>

是否加入opengl的支持,OpenGL是個專業的3D程序接口,是一個功能強大,調用方便的底層3D圖形庫。不過對於一般的開發來說,似乎有很少用到的地方。

-qt-gfx-<driver>
-plugin-gfx-<driver>
-no-gfx-<driver>

這個是相當重要的一個參數,選擇QtGui的圖形顯示驅動,比如我們在pc上使用qvfb模擬時,就應該加入對qfvb的支持。我們可以在linuxfb,transformed,qvfb,vnc,multiscreen這幾個中選擇。在平常的開發板上,選擇linuxfb即可。

-qt-kbd-<driver>
-plugin-kbd-<driver>
-no-kbd-<driver>

選擇鍵盤的驅動支持,可以支持usb鍵盤,串口鍵盤等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中選擇。

qt-mouse-<driver>
-plugin-mouse-<driver>
-no-mouse-<driver>

鼠標的驅動支持,一般都會選擇tslib,可以完美地支持觸摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中選擇吧。

-iwmmxt

加入iWMMXt指令的編譯,也只是部分XScale架構才具有。

-no-glib
-glib

是否加入glib庫的支持,glib庫對應即gtk庫,就也是說加入後可以使用gtk。

至此,所有qte的參數介紹完成了,對於qt,其參數是共通的,學習好一個版本的參數,其他版本的配置也能很快上手。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章