Qt原始碼編譯configure配置引數
阿新 • • 發佈:2019-01-18
安裝選項
選項 | 作用 |
---|---|
-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*.so 為libQt*<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 | |
-no-libjpeg | 不要編譯JPEG支援. | |
-qt-libjpeg | 使用QT自帶的libjpeg. | |
+ | -system-libjpeg | |
-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
|
啟用指定編譯器的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平臺的 |