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许可不兼容。

猜你喜欢

转载自blog.csdn.net/Fenglin6165/article/details/89512118
今日推荐