Qt源碼編譯configure配置參數

安裝選項

選項 作用
-prefix <dir> 指定部署目錄(默認 /usr/local/Qt-5.6.0)
-extprefix <dir> 安裝目錄(默認 SYSROOT/PREFIX)
-hostprefix [dir] 運行在這個主機上的構建工具的安裝目錄,如果不給定,使用當前目錄. (默認 EXTPREFIX)

你可以用這些來改變安裝的佈局。請注意,所有目錄除sysconfdir外,其他的應位於-prefix或者hostprefix下

 

選項 作用
-bindir <dir> 用戶可執行文件將安裝到這個目錄(默認 PREFIX/bin)
-headerdir <dir> 頭文件安裝目錄(默認 PREFIX/include)
-libdir <dir> 庫文件安裝目錄(默認 PREFIX/lib)
-archdatadir <dir> QT相關的數據將被安裝到<<目錄>(默認 PREFIX)
-plugindir <dir> 插件安裝目錄(默認 ARCHDATADIR/plugins)
-libexecdir <dir> 程序的可執行文件安裝目錄(默認 ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW)
-importdir <dir> 導入QML1安裝目錄(默認 ARCHDATADIR/imports)
-qmldir <dir> 導入QML2安裝目錄(默認 ARCHDATADIR/qml)
-datadir <dir> QT獨立的數據安裝目錄(default PREFIX)
-docdir <dir> 文檔安裝目錄(default DATADIR/doc)
-translationdir <dir> Qt程序的翻譯數據安裝目錄(default DATADIR/translations)
-sysconfdir <dir> 設置使用QT程序的搜尋目錄(default PREFIX/etc/xdg)
-examplesdir <dir> 示例文件安裝目錄(default PREFIX/examples)
-testsdir <dir> 測試文件安裝目錄(default PREFIX/tests)
-hostbindir <dir> 主機可執行文件安裝目錄(default HOSTPREFIX/bin)
-hostlibdir <dir> 主機庫文件安裝目錄(default HOSTPREFIX/lib)
-hostdatadir <dir> qmake使用數據安裝目錄(default HOSTPREFIX)

 

 

Configure選項

下表中第一列中的*表示默認並可行的。+表示默認,但需要進行評估(檢測),評估通過纔可接受。

  選項 作用
* -release 編譯和鏈接Qt的release版本
  -debug 編譯和鏈接debug版本
  -debug-and-release 編譯和鏈接release和debug兩個版本(僅MAC)
  -force-debug-info 爲release構建創建符號鏈接
  -developer-build Qt開發者編譯和鏈接選項(包括自動測試/輸出)
* -no-optimized-tools 即使在調試版本中,也不構建優化的主機工具
  -optimized-tools 構建優化的主機工具,即使在調試版本
  -opensource 編譯和鏈接Qt開源版本
  -commercial 編譯和鏈接的Qt商業版
  -confirm-license 自動確認許可證(使用開源或是商業)
  -c++std <edition> 編譯QT使用的C++標準 (c++98, c++11, c++14, c++1z) 默認: 最高支持版本
* -shared 創建並使用Qt共享庫.
  -static 創建並使用QT靜態庫
  -no-largefile 禁用大文件支持
+ -largefile 啓用QT訪問大於4 GB的文件功能
  -no-accessibility 不編譯的可訪問性支持,禁用訪問不推薦,它將破壞QStyle並且可能影響QT構建 
這個選項啓用將創建一個源不兼容版本的QT,這是不支持
+ -accessibility 編譯訪問支持.
  -no-sql-<driver> 完全禁用SQL <driver> .
  -qt-sql-<driver> 在 Qt SQL 模塊啓用SQL <driver>,默認是不啓用的.
  -plugin-sql-<driver> 啓用SQL <driver\>作爲一個插件在運行時鏈接 
  -system-sqlite 利用操作系統SQLite
  -no-qml-debug 不構建在QML調試支持
+ -qml-debug 構建QML調試支持
  -platform target 構建的目標操作系統和編譯器(默認檢測主機系統),讀readme文件獲取支持的操作系統和編譯器列表
  -no-sse2 編譯不要使用SSE2指令
  -no-sse3 編譯不要使用SSE3指令
  -no-ssse3 編譯不要使用SSSE3指令
  -no-sse4.1 編譯不要使用SSE4.1指令
  -no-sse4.2 編譯不要使用SSE4.2指令
  -no-avx 編譯不要使用AVX指令
  -no-avx2 編譯不要使用AVX2指令
  -no-mips_dsp 編譯不要使用MIPS DSP指令
  -no-mips_dspr2 編譯不要使用MIPS DSP Rev2指令
  -qtnamespace <name> 把所有的Qt庫代碼放入namespace <name> {...}
  -qtlibinfix <infix> 重命名索引libQt*.solibQt*<infix>.so
  -testcocoon Instrument Qt with the TestCocoon code coverage tool.
  -gcov Instrument Qt with the GCov code coverage tool.
  -D <string> 顯示的添加一個宏定義到預處理器
  -I <string> 顯示的添加一個包含路徑
  -L <string> 顯示添加一個庫路徑
+ -pkg-config 使用pkg-config檢測包括庫路徑。默認情況下,配置決定是否使用pkg-config或不具有啓發式如檢查環境變量。
  -no-pkg-config 禁用pkg-config支持
  -force-pkg-config 強制使用pkg-config (跳過pkg-config可用性啓發式檢測).
  -help, -h 顯示幫助信息.

 

 

第三方庫:

  選項 作用
  -qt-zlib 使用QT自帶zlib庫
+ -system-zlib 使用操作系統自帶的zlib庫。
  -no-mtdev 不要編譯mtdev支持 ,mtdev包含了應用程序對多點觸摸協議的支持
+ -mtdev 啓用mtdev的支持.
+ -no-journald 不要把日誌輸出到journald,Journald是爲Linux服務器打造的新系統日誌方式
  -journald 日誌輸出到journald
+ -no-syslog 不要輸出日誌到syslog.
  -syslog 輸出日誌到syslog.
  -no-gif 不要編譯GIF讀取支持
  -no-libpng 不要編譯PNG支持
  -qt-libpng 使用Qt自帶的libpng
+ -system-libpng 使用操作系統自帶的libpng ,http://www.libpng.org/pub/png
  -no-libjpeg 不要編譯JPEG支持.
  -qt-libjpeg 使用QT自帶的libjpeg.
+ -system-libjpeg 使用系統自帶的 libjpeg ,http://www.ijg.org
  -no-freetype 不要編譯Freetype2的支持.
  -qt-freetype 使用QT自帶的libfreetype.
+ -system-freetype 使用系統自帶的libfreetype(假如存在) (啓用,如果-fontconfig選項開啓),http://www.freetype.org
  -no-harfbuzz 不要編譯HarfBuzz-NG 支持.
* -qt-harfbuzz 使用QT自帶的HarfBuzz-NG 去進行文本構形. 仍然可以通過設置QT_HARFBUZZ 環境變量到”old”來禁用.
  -system-harfbuzz 使用系統自帶的HarfBuzz-NG區進行文本構形.仍然可以通過設置QT_HARFBUZZ 環境變量到”old”來禁用 ,http://www.harfbuzz.org
  -no-openssl 不要編譯OpenSSL的支持
  -openssl 啓用運行時OpenSSL支持.
  -openssl-linked 啓用並鏈接OpenSSL支持
  -no-libproxy 不要編譯libproxy的支持
+ -libproxy 使用操作系統自帶的libproxy.
  -qt-pcre 使用QT自帶的PCRE library.
+ -system-pcre 使用操作系統自帶的PCRE library
  -qt-xcb 使用QT自帶的xcb-libraries. (libxcb.so將仍然使用操作系統自帶的).
+ -system-xcb 使用操作吸引自帶的xcb- libraries .
  -xkb-config-root 設置默認的XKB config root. 這個選項僅與-qt-xkbcommon-x11一起使用.
  -qt-xkbcommon-x11 在構建xcb中使用QT自帶的xkbcommon library .
+ -system-xkbcommon-x11 在構建xcb中使用操作系統自帶的 xkbcommon library.
  -no-xkbcommon-evdev 當編譯libinput支持時,不使用X-less xkbcommon.
* -xkbcommon-evdev 當編譯libinput支持時,使用X-less xkbcommon.
  -no-xinput2 不要編譯XInput2的支持.
* -xinput2 編譯XInput2支持.
  -no-xcb-xlib 不要編譯Xcb-Xlib支持.
* -xcb-xlib 編譯 Xcb-Xlib支持.
  -no-glib 不要編譯 Glib 支持.
+ -glib 編譯 Glib 支持.
  -no-pulseaudio 不要編譯PulseAudio 支持.
+ -pulseaudio 編譯 PulseAudio 支持.
  -no-alsa 不要編譯 ALSA 支持.
+ -alsa 編譯 ALSA 支持.
  -no-gtkstyle 不要編譯GTK theme 支持.
+ -gtkstyle 編譯 GTK theme 支持.

 

 

附加選項:

  選項 作用
  -make <part> 在make時添加要構建的組件. (默認爲:libs tools examples
  -nomake <part> 在構建時排除組件
  -skip <module> 排除整個模塊的建立
  -no-compile-examples 僅安裝examples的源碼,不要編譯它.
  -no-gui 不要構建Qt GUI模塊和依賴.
+ -gui 構建Qt GUI 模塊和依賴.
  -no-widgets 不要構建Qt Widgets 模塊和依賴.
+ -widgets 構建 Qt Widgets模塊和依賴
  -R <string> 顯示添加一個運行時庫的路徑去構建Qt libraries.
  -l <string> 顯示添加一個library.
  -no-rpath 不使用庫安裝路徑作爲一個運行時庫路徑 
在蘋果的平臺上,這意味着使用絕對安裝名稱(基於在libdir)動態庫和框架。
+ -rpath 鏈接 Qt 庫和可執行文件使用庫安裝路徑作爲運行時庫路徑。相當於-R install_libpath
  -continue 如果發生錯誤,儘量繼續。
  -verbose, -v 打印每個步驟的配置過程的詳細的信息。
  -silent 減少生成輸出,這樣可以更容易看到警告和錯誤。
  -no-nis 不要編譯NIS 支持.
* -nis 編譯 NIS 支持.
  -no-cups 不要編譯CUPS支持.
* -cups 編譯CUPS支持. 要求 cups/cups.h 和libcups.so.2.
  -no-iconv 不編譯對 iconv(3) 的支持。
* -iconv 編譯對 iconv(3) 的支持。
  -no-evdev 不編譯對 evdev 的支持。
* -evdev 編譯對 evdev 的支持。
  -no-tslib 不編譯對 tslib 的支持 
tslib是對觸屏的支持
* -tslib 編譯對 tslib 的支持.
  -no-icu 不編譯對 ICU libraries 的支持. 
這是IBM發佈的字符集編碼轉換庫
+ -icu 編譯對 ICU libraries 的支持.
  -no-fontconfig 不編譯系統中的FontConfig支持
+ -fontconfig 編譯系統中的FontConfig支持
  -no-strip 不對二進制文件和庫的使用strip去除不需要的符號.
* -strip 在安裝時對二進制文件和庫的使用strip去除不需要的符號
* -no-pch 不使用預編譯的頭支持.
  -pch 使用預編譯的頭支持.
* -no-ltcg 不使用鏈接時代碼生成
  -ltcg 使用鏈接時代碼生成.
  -no-dbus 不要編譯Qt D-Bus 模塊.
+ -dbus-linked 編譯Qt D-Bus模塊並鏈接到libdbus-1.
  -dbus-runtime 編譯Qt D-Bus模塊並動態加載libdbus-1.
  -reduce-relocations 減少通過額外的鏈接器優化庫的重加載 ,(僅qt/X11 和Qt/linux嵌入式 ;實驗性的;需要 GNU ld > = 2.18)
  -no-use-gold-linker 不要使用GNU gold linker進行鏈接.
+ -use-gold-linker 使用GNU gold linker進行鏈接.
  -force-asserts 強制啓用Q_ASSERT,即使在release構建中.
 

sanitize[address/thread

/memory/undefined]

啓用指定編譯器的sanitizer.
  -device <name> 跨平臺編譯<name>設備 (試驗性)
  -device-option <key=value> 添加device mkspec的device選項 (試驗性)
* -no-separate-debug-info 不將調試信息存儲在一個單獨的文件
  -separate-debug-info 將調試信息到一個單獨的文件
  -no-xcb 不要編譯Xcb (X protocol C-language Binding) 支持.
* -xcb 編譯 Xcb 支持.
  -no-eglfs 不要編譯EGLFS (EGL Full Screen/Single Surface) 支持.
* -eglfs 編譯 EGLFS 支持.
  -no-kms 不要編譯KMS的後端.
* -kms 編譯 KMS的後端.
  -no-gbm 不要編譯 GBM 的後端.
* -gbm 編譯 GBM的後端.
  -no-directfb 不要編譯 DirectFB 支持.
* -directfb 編譯 DirectFB 支持.
  -no-linuxfb 不要編譯Linux Framebuffer 支持.
* -linuxfb 編譯 Linux Framebuffer 支持.
* -no-mirclient 不要編譯 Mir client 支持.
  -mirclient 編譯 Mir client 支持.
  -qpa <name> 設置默認的QPA 平臺 (示例 xcb, cocoa, windows).
  -xplatform target 指定目標平臺(在跨平臺編譯時)
  -sysroot <dir> <dir>設置爲目標編譯器和 qmake 的 sysroot 並且也設置 pkg-confing路徑.
  -no-gcc-sysroot 當使用-sysroot時, 它禁用將–sysroot傳遞到編譯器
  -no-feature-<feature> <feature>中的不編譯.
  -feature-<feature> 編譯<feature>中的. 可用的功能介紹在src/corelib/global/qfeatures.txt
  -qconfig local 使用src/corelib/global/qconfig-local.h ,而不是默認的(全部).
  -qreal [double/float] 爲qreal指定類型.默認值是double。請注意,更改此標誌影響二進制兼容性。
  -no-opengl 禁用OpenGL支持.
  -opengl <api> 啓用 OpenGL 支持.不帶參數時,這將會嘗試自動檢測的 OpenGL ES 2.0 和更高版本,或常規的桌面版OpenGL. 使用 es2 的<api>將替代自動檢測
  -no-libinput 禁用libinput支持.
* -libinput 啓用libinput 支持.
  -no-gstreamer 禁用GStreamer支持.
+ -gstreamer <version> 啓用 GStreamer 支持。不帶參數,這將會嘗試自動檢測 GStreamer 0.10 和 1.0。GStreamer 1.0 是默認使用的可用時。使用 0.10 或 1.0 <version>來覆蓋自動檢測。
* -no-system-proxies 默認情況下,不使用系統網絡代理
  -system-proxies 默認情況下,使用系統網絡代理
  -no-warnings-are-errors Make 時把warnings當做正常
  -warnings-are-errors Make時把warnings 當做錯誤 (如果啓用了-developer-build)

 

 

QNX/Blackberry 選項:

選項 作用
-no-slog2 不編譯 slog2 的支持
-slog2 編譯 slog2 的支持
-no-pps 不編譯 pps 的支持
-pps 編譯 pps 的支持
-no-imf 不編譯 imf 的支持
-imf 編譯 imf 的支持
-no-lgmon 不編譯 lgmon 的支持
-lgmon 編譯 lgmon 的支持

 

 

Android 選項:

  選項 作用
  -android-sdk path Android SDK 根目錄 
(默認 $ANDROID_SDK_ROOT)
  -android-ndk path Android NDK 根目錄. 
(默認 $ANDROID_NDK_ROOT)
  -android-ndk-platform 設置android 平臺版本 
(默認 android-9)
  -android-ndk-host 設置android NDK 主機類型 (linux-x86, linux-x86_64, etc.) 
(默認 $ANDROID_NDK_HOST)
  -android-arch 設置android 體系結構 (armeabi, armeabi-v7a, x86, mips, arm64-v8a, x86_64, mips64) 
(默認 armeabi-v7a)
  -android-toolchain-version 設置android 工具鏈版本 
(默認 4.9)
  -no-android-style-assets 不編譯 通過運行時設備自動提取style-assets的代碼. 
設置這將使Android風格的行爲不當,但與lgpl2.1許可兼容
* -android-style-assets 編譯 通過運行時設備自動提取style-assets的代碼.
此選項將使Android平臺的lgpl2.1許可不兼容。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章