1. 程式人生 > >Qt 原始碼 編譯configure配置引數說明(二)

Qt 原始碼 編譯configure配置引數說明(二)

主要關注哪些引數是預設配置的轉載備查

==================================
====全文是按照./configure -help來翻譯的========
==================================
Usage:  configure [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
        [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
        [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
        [-demosdir <dir>] [-buildkey <key>]


        這些是基本引數
        [-release] [-debug][-debug-and-release] [-developer-build]
        [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
        [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
        [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
        [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
        [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]

        這些是對QT所支援模組等設定的引數
        [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
        [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
        [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
        [-no-make <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
        [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
        [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
        [-no-separate-debug-info]

        這些是第三方庫的支援引數
        [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
        [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] 
        [-armfpa][-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns]
        [-xmlpatterns][-no-phonon] [-phonon] [-no-phonon-backend] 
        [-phonon-backend][-no-openssl] [-openssl] [-openssl-linked]
        [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
        [-no-scripttools] [-scripttools]


安裝選項:

以下選項都是可選,通過他們指定安裝目錄,不指定則用預設目錄。選項前標記*的則為系統預設,+則為新增才有效那種
    -prefix <dir> ......... 指定安裝目錄預設在 /usr/local/Trolltech/QtEmbedded-4.X.X
    -hostprefix [dir] ..... 指定可擴充套件的工具庫安裝路徑,預設當前目錄
  * -prefix-install ........ 指定QT的本地安裝. 至
                                 /usr/local/Trolltech/QtEmbedded-4.X.X, 此選項優先於-PREFIX.


以下選項用來指定分開安裝不同部分,比如希望將可執行的放在/usr/bin 將庫檔案放在/lib下等等:

    -bindir <dir> ......... 指定可執行檔案路徑 <dir>(預設 PREFIX/bin下)
    -libdir <dir> .......... 指定庫檔案路徑 <dir>(預設 PREFIX/lib)
    -docdir <dir> ........ 指定文件路徑 <dir>(預設 PREFIX/doc)
    -headerdir <dir> .... 指定標頭檔案路徑 <dir>(預設 PREFIX/include)
    -plugindir <dir> ...... 指定外掛路徑 <dir> (預設 PREFIX/plugins)
    -datadir <dir> ........ 指定QT要使用到的一些資料檔案所在路徑 <dir> (預設 PREFIX)
    -translationdir <dir> . 指定QT程式的翻譯檔案路徑 <dir>(預設 PREFIX/translations)
    -sysconfdir <dir> ..... 指定QT的設定檔案路徑 <dir>(預設 PREFIX/etc/settings)
    -examplesdir <dir> .... 指定例項檔案, <dir>(預設 PREFIX/examples)
    -demosdir <dir> ....... 指定demos的安裝路徑 <dir> (預設 PREFIX/demos)


可以用這些選項去匹配自己所想要的外掛

    - buildkey <key> ...... 通過指定的key生成QT庫和外掛。
配置選項:


預設的選項(*),可選新增選項(+)


*  -release ........... 此選項在編譯過程QT會對程式進行優化,在釋出軟體的時候應該用此選項,是預設選項
    -debug ............. 加上此選項編譯程式QT不會做出優化,往往在開發過程使用此選項
    -debug-and-release . 編譯兩個版本

    -developer-build.... 編譯Qt的開發商和連線選項(包括自動測試出口的Qt) 

    -opensource......... 以開源版本釋出程式
    -commercial......... 以商業版本釋出程式

*  -shared ............ 建立和使用共享Qt庫。
    -static ............ 建立和使用靜態的Qt庫。

*  -no-fast ........... 使用通常的Makefile來編譯,是預設選項
    -fast .............. 快速編譯,除了封裝必要的庫,部分步驟省略或者用快速的方法處理
    -no-largefile ...... 禁用大檔案支援。
+  -largefile ......... 支援訪問大於4GB的檔案
*  -no-exceptions ..... 禁用編譯器本身對異常的處理
    -exceptions ........ 啟用編譯器本身對異常的處理
    -no-accessibility .. 
*  -accessibility .....   禁用/啟用無障礙支援
    -no-stl ............ 
*  -stl ...............   禁用/啟用STL支援
    -no-sql-<driver> ... 禁用SQL
    -qt-sql-<driver> ... 根據需求啟用SQL外掛(預設全部關閉)
    -plugin-sql-<driver> 禁用/啟用/啟用外掛 對SQL的支援

    -system-sqlite ..... 啟用支援sqlite也可用-qt-sqlite

    -no-qt3support ..... 
*  -qt3support ........ 禁用/啟用qt3支援模組

    -no-xmlpatterns .... 
+  -xmlpatterns ....... 禁用/啟用xmlpatterns模組

    -no-phonon ......... 
+  -phonon ............ 禁用/啟用Phonon模組(可以理解為聲音控制模組)


    -no-phonon-backend.. 
+  -phonon-backend..... 禁用/啟用phonon-backend模組
    -no-svg ............ 
+  -svg ............... 禁用/啟用svg模組

    -no-webkit ......... 
+  -webkit ............ 禁用/啟用webkit模組(訪問網路模組)
    -no-scripttools .... 
+  -scripttools ....... 禁用/啟用scripttools模組

    -platform target ... x86平臺指定模組 (qws/linux-x86-g++).


    -no-mmx ............ 我不知道這四個是什麼,貌似是幾個指令系統?
    -no-3dnow .......... 
    -no-sse ............ 
    -no-sse2 ........... 

    -qtnamespace <name>  指定所有庫程式碼路徑.
    -qtlibinfix <infix>  重新命名所有.so庫檔案到指定路徑

    -D <string> ........ 新增一個前處理器
    -I <string> ........ 新增一個明確的標頭檔案路徑
    -L <string> ........ 新增一個明確的庫檔案路徑

    -help, -h .......... 顯示幫助資訊
第三方庫選項:
(以下是第三方庫,往往編譯過程中需要依賴的都要加上,也沒什麼好說的,缺什麼就加什麼)

     -qt-zlib ........... 
+  -system-zlib .......      zlib依賴包 詳詢 http://www.gzip.org/zlib

     -no-gif ............ 
*  -qt-gif ............         gif圖片支援包
                                See also src/plugins/imageformats/gif/qgifhandler.h

     -no-libtiff ........ 
     -qt-libtiff ........         tiff支援外掛
+  -system-libtiff ....     預設是-system呼叫系統的,出錯的話可以嘗試用-qt,qt的在編譯過程不容易出錯
                                  詳詢 http://www.libtiff.org

     -no-libpng ......... 
     -qt-libpng .........        png圖片支援外掛
+  -system-libpng ..... 
                                    詳詢 http://www.libpng.org/pub/png

     -no-libmng ......... 
     -qt-libmng .........       mng支援外掛
+  -system-libmng ..... 
                                    詳詢 http://www.libmng.com

     -no-libjpeg ........ 
     -qt-libjpeg ........         jpeg圖片支援外掛
+  -system-libjpeg .... 
                                     詳詢 http://www.ijg.org

     -no-openssl ........ 
+  -openssl ...........        openssl支援外掛
     -openssl-linked .... 

     -ptmalloc ..........        系統記憶體分配器
其他選項:
(擴充套件選項,模組的選擇等,使編譯更加人性化)
    -make <part> .......    選擇是否編譯某些無關緊要的子模組
    -nomake <part> ..... (例如不想編譯系統自導的demos則可使用-nomake demos)
    -R <string> ........      新增一個動態庫
    -l <string> ........       新增一個靜態庫
    -no-rpath .......... 
+  -rpath .............        是否將生成的庫安裝在軟體的安裝目錄,預設是在安裝目錄,否則自己指定路徑

    -continue ..........        忽略錯誤一路前奔的編譯,因為一般情況是按照模組逐個編譯的,
                                  碰到錯誤就停止。加上此引數是全部編譯最後處理
    -verbose, -v .......      顯示每個步驟的詳細資訊
    -silent ............        安靜的編譯省略資訊回顯

*  -no-optimized-qmake ... 
    -optimized-qmake ......  禁用/開啟qmake的優化作用

    -no-nis ............ 
*  -nis ...............         禁用/開啟NIS的支援

    -no-cups ........... 
*  -cups ..............       禁用/開啟對CUPS的支援
                                 需要 cups/cups.h and libcups.so.2.

    -no-iconv .......... 
*  -iconv .............      禁用/開啟對iconv的支援.

    -no-pch ............ 
*  -pch ...............      禁用/開啟是否使用前處理器標頭檔案

    -no-dbus ........... 
+  -dbus ..............     禁用/開啟對QTdbus模組的編譯
    -dbus-linked ....... 

    -reduce-relocations ..... 減少因為連結優化而導致的而外的庫檔案重置

    -no-separate-debug-info . 不將除錯資訊放在一個檔案內
*  -separate-debug-info .... 將除錯資訊放在一個檔案內

以下引數僅限於嵌入式QTE編譯使用:

    -xplatform target ...      交叉編譯過程指定目標平臺
    -no-feature-<feature>   不編譯<feature>.
    -feature-<feature> ..    編譯<feature>. 可選feature在src/corelib/global/qfeatures.txt檔案內可查尋

    -embedded <arch> ....   指定嵌入式平臺的型別例如:arm mips x86 generic

    -armfpa ............. 
    -no-armfpa ..........       禁用/啟用armfpa浮點格式支援

    -little-endian ......         指定位元組順序為小位元組序、低位元組序
    -big-endian .........        指定位元組順序為大位元組序、高位元組序

    -host-little-endian .       指定主機平臺位元組順序為小位元組序、低位元組序
    -host-big-endian ....     指定主機平臺位元組順序為大位元組序、高位元組序
                                    注:只需指定目標平臺的位元組順序,否則將會選用主機的位元組順序
                                   arm的編譯過程這項得加


    -no-freetype ........ 
    -qt-freetype ........      禁用/啟用對freetype 模組的支援
*  -system-freetype .... 
                                   詳詢 http://www.freetype.org/

    -qconfig local ......      在不指定此配置的情況下系統使用
                                    src/corelib/global/qconfig-local.h 

    -depths <list> ......     支援顯示裝置的位深度。有1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.

    -qt-decoration-<style> ....指定編譯後的介面風格預設是windows


    -plugin-decoration-<style> 指定外掛風格預設windows
    -no-decoration-<style> ....不知定風格採用預設選項

    -no-opengl .......... 
    -opengl <api> .......      禁用/開啟對opengl的支援
                                      不指定型號則系統會自動檢測
                                     注意:使用此選項的前提條件是硬體支援且可以驅動

    -qt-gfx-<driver> ...      指定顯示裝置驅動庫
                                   參考選項為:[ linuxfb transformed qvfb vnc multiscreen ]
    -plugin-gfx-<driver> 指定顯示外掛驅動庫
                                    參考選項為:[  ahi directfb hybrid linuxfb powervr qvfb transformed vnc ]
    -no-gfx-<driver> ... 不載入顯示裝置
                                     參考選項為: [ linuxfb transformed qvfb vnc multiscreen ]

    -qt-kbd-<driver> ... 指定圖形介面下的鍵盤驅動庫
                                參考選項為: [ tty usb sl5000 yopy vr41xx qvfb ]

    -plugin-kbd-<driver> E指定圖形介面下鍵盤外掛驅動庫
                         參考選項為: [  linuxis sl5000 usb vr41xx yopy ]

    -no-kbd-<driver> ... 不載入指定驅動
                         參考選項為: [ tty usb sl5000 yopy vr41xx qvfb ]

    -qt-mouse-<driver> ... 指定圖形介面下滑鼠驅動庫
                           參考選項為: [ pc bus linuxtp yopy vr41xx tslib(觸控式螢幕選這個) qvfb ]
    -plugin-mouse-<driver> 滑鼠外掛驅動庫
                           參考選項為: [  bus linuxis linuxtp pc tslib vr41xx yopy ]
    -no-mouse-<driver> ... 指定不載入的滑鼠驅動庫模組
                           參考選項為: [ pc bus linuxtp yopy vr41xx tslib qvfb ]

    -iwmmxt ............ 編譯使用iwmmxt指令集,方便對某些XScale CPUs的支援

    -no-glib ........... 
+  -glib .............. 禁用/啟用對glib的支援