Qt源码编译configure配置参数
相关文章
Configure理解命令行上的变量赋值,比如VAR=value。每个大写的库名(可通过 -list-libraries
获得)都支持后缀_INCDIR, _LIBDIR, _PREFIX (INCDIR=PREFIX/include, LIBDIR=PREFIX/lib),和- on Windows和Darwin - LIBS_DEBUG和_LIBS_RELEASE。例如,
ICU_PREFIX=/opt/icu42 ICU_LIBS="-licui18n -licuuc -licudata"
也可以操作任何QMAKE*变量来修改值从构建Qt本身的mkspec,例如QMAKE_CXXFLAGS+=-g3。
顶级安装目录:
[options] | [assignments] | [说明] |
---|
-prefix | <dir> | 指定在目标设备上的部署目录,默认/usr/local/Qt-$QT_VERSION,$PWD if -developer-build |
-extprefix | <dir> | 安装目录, 主机上默认值[SYSROOT/PREFIX] |
-hostprefix | [dir] | 运行在主机上的构建工具的安装目录. 如果没有给出[dir],则使用当前构建目录[EXTPREFIX] |
-external-hostbindir | <path> | 为这台机器构建的Qt工具的路径。当-platform与当前系统不匹配时,构建交叉编译 |
微调安装目录。注意,除-sysconfdir
之外的所有目录都应该位于-prefix/-hostprefix
下:
[options] | [assignments] | [说明] |
---|
-bindir | <dir> | 可执行文件目录 [PREFIX/bin] |
-headerdir | <dir> | 头文件目录[PREFIX/include] |
-libdir | <dir> | 库文件目录 [PREFIX/lib] |
-archdatadir | <dir> | Arch 依赖的数据目录 [PREFIX] |
-plugindir | <dir> | 插件目录 [ARCHDATADIR/plugins] |
-libexecdir | <dir> | 辅助程序目录 [ Windows 默认ARCHDATADIR/bin,其它默认 ARCHDATADIR/libexec ] |
-importdir | <dir> | QML1 imports模块 目录 [ARCHDATADIR/imports] |
-qmldir | <dir> | QML2 imports模块 目录[ARCHDATADIR/qml] |
-datadir | <dir> | Arch 独立数据目录 [PREFIX] |
-docdir | <dir> | 文档目录 [DATADIR/doc] |
-translationdir | <dir> | Qt程序的翻译数据安装目录 [DATADIR/translations] |
-sysconfdir | <dir> | Qt程序使用的设置目录 [PREFIX/etc/xdg] |
-examplesdir | <dir> | 示例文件安装目录 [PREFIX/examples] |
-testsdir | <dir> | 测试文件安装目录 [PREFIX/tests] |
-hostbindir | <dir> | 主机可执行文件安装目录 [HOSTPREFIX/bin] |
-hostlibdir | <dir> | 主机库文件安装目录 [HOSTPREFIX/lib] |
-hostdatadir | <dir> | qmake使用数据安装目录 [HOSTPREFIX] |
其余选项的约定:当一个选项的描述是解释如下:
yes
代表最基本的选择;所有其他值都是可能的前缀选项,例如-no-gui
。或者,可以分配值,例如,--gui = yes
如果没有指定,则按尝试的顺序列出值;auto
表示yes/no
的缩写。单独的yes
和no
表示选项没有自动选择。
Configure选项:
[options] | [说明] |
---|
-help, -h | 显示本帮助文档 |
-verbose, -v | 打印显示配置信息 |
-continue | 如果发生错误,尽量继续 |
-redo | 使用以前使用过的选项重新配置。可以传递其他选项 |
-recheck | 丢弃缓存的负配置测试结果。安装丢失的依赖项后使用此功能 |
-recheck-all | 丢弃所有缓存的配置测试结果 |
-feature-<feature> | 启用 <feature> |
-no-feature-<feature> | 禁止 <feature> |
-list-features | 列出可用功能列表。注意,一些特性也有专用的命令行选项 |
-list-libraries | 列出可能的外部依赖 |
构建选项:
[options] | [说明] |
---|
-opensource | 构建Qt的开源版本 |
-commercial | 构建Qt的商业版本 |
-confirm-license | 自动确认许可 |
-release | 构建Qt的release版本 [yes] |
-debug | 构建Qt的debug版本[no] |
-debug-and-release | 构建Qt的debug和release版本 [yes] (仅支持 Apple 系统 和 Windows 系统) |
-optimize-debug | 在调试构建中启用调试友好的优化[ auto ](不支持MSVC) |
-optimize-size | 优化版本构建的大小而不是速度[no] |
-optimized-tools | 构建优化的主机工具,即使在debug版本 [no] |
-force-debug-info | 为release构建创建符号文件[no] |
-separate-debug-info | 将调试信息分离到单独的文件中 [no] |
-strip | 去掉 release版本 不需要的符号 [yes] |
-force-asserts | 启用Q_ASSERT,即使在release构建中[no] |
-developer-build | 编译并链接Qt以开发Qt本身(导出用于自动测试、额外检查等) [no] |
-shared | 构建共享Qt库[yes](不用于UIKit) |
-static | 构建静态Qt库[no] (用于UIKit) |
-framework | 构建Qt框架包[yes](仅适用于Apple) |
-platform <target> | 指定目标操作系统和编译器,选择mkspec[detected] |
-xplatform <target> | 交叉编译时选择目标mkspec [PLATFORM] |
-device <name> | 指定交叉编译的目标设备 <name> |
-device-option <key=value> | 为目标设备mkspec添加选项 |
-appstore-compliant | 禁用平台应用程序商店中不允许的代码。对于需要通过应用程序商店分发的平台,特别是Android、iOS、tvOS、watchOS和通用Windows平台,这是默认打开的 [auto] |
-qtnamespace <name> | 把所有的Qt库代码放入namespace {…}中 |
-qtlibinfix <infix> | 重命名所有libQt5 * 为 libQt5 * <infix> . so |
-testcocoon | 使用TestCocoon代码覆盖工具测试 [no] |
-gcov | 使用GCov代码覆盖工具测试 [no] |
-sanitize {address|thread|memory|undefined} | 使用指定编译器sanitizer测试 |
-c++std <edition> | 选择C++标准 [C++ 12 / C++ 14/ C++ 11](不支持MSVC) |
-sse2 | 使用SSE2指令 [auto] |
-sse3/-ssse3/-sse4.1/-sse4.2/-avx/-avx2/-avx512 | 启用特定x86指令的使用,启用的指令仍然要接受运行时检测,[auto] |
-mips_dsp/-mips_dspr2 | 使用MIPS DSP/rev2指令 [auto] |
-qreal <type> | 为qreal指定类型.默认值是double 。请注意,更改此标志影响二进制兼容性 |
-R <string> | 向Qt库添加显式运行时库路径。支持相对于LIBDIR的路径 |
-rpath | 使用库安装路径作为运行时库路径链接Qt库和可执行程序。类似于-R LIBDIR。在苹果平台上,禁用它意味着对动态库和框架使用绝对安装路径(基于LIBDIR) [auto] |
-reduce-exports | 减少导出符号的数量 [auto] |
-reduce-relocations | 减少重定位的数量[auto] (只适用于Unix) |
-plugin-manifests | 将manifests嵌入插件[no] (仅限Windows) |
-static-runtime | 使用-static 选项时,使用静态运行时[no] (仅限Windows) |
-pch | 使用预编译头 [auto] |
-ltcg | 使用链接时代码生成 [no] |
-use-gold-linker | 使用GNU gold链接器 [auto] |
-incredibuild-xge | 使用IncrediBuild XGE [no] (仅限Windows) |
-make-tool <tool> | 使指定的工具<tool>构建qmake [nmake](仅限Windows) |
-mp | 使用多个处理器编译 (仅限MSVC) |
-warnings-are-errors | 视警告为错误 默认no;如果指定-developer-build 选项则为yes |
-silent | … Reduce the build output so that warnings and errors can be seen more easily |
构建环境:
[options] | [说明] |
---|
-sysroot <dir> | 设置目标sysroot为<dir> |
-gcc-sysroot | 使用-sysroot 选项,将-sysroot传递给编译器 [yes] |
-pkg-config | 使用pkg-config[auto] (仅限Unix) |
-D <string> | 添加一个宏定义<string>到预处理器 |
-I <string> | 添加一个头文件包含路径<string> |
-L <string> | 添加一个库文件路径<string> |
-F <string> | 添加一个框架路径<string> (仅限Apple) |
-sdk <sdk> | 使用苹果提供的SDK构建Qt < SDK >。参数应该是“xcodebuild -showsdks”列出的可用SDKs之一。注意,这个参数只适用于使用目标mkspec构建的Qt库和应用程序,而不是像qmake、moc、rcc等主机工具。 |
-android-sdk path | 设置Android SDK根目录 [$ANDROID_SDK_ROOT] |
-android-ndk path | 设置Android NDK根目录 [$ANDROID_NDK_ROOT] |
-android-ndk-platform | 设置android 平台版本 |
-android-ndk-host | 设置Android NDK主机类型(linux-x86, linux-x86_64等) [$ANDROID_NDK_HOST] |
-android-arch | 设置android 体系架构 (armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips, mips64) |
-android-toolchain-version | 设置android 工具链版本 |
-android-style-assets | 在运行时自动从设备中提取样式表。这个选项使Android风格正确,但也使Android平台插件与LGPL2.1不兼容 [yes] |
组件选项:
[options] | [说明] |
---|
-skip <repo> | 从构建中排除整个存储库<repo>. |
-make <part> | 在make时添加要构建的组件.指定此选项将首先清除默认列表. [libs examples tools 如果不是 cross-building,甚至还有 tests 如果指定 -developer-build] |
-nomake <part> | 从要构建的部件列表中排除. |
-compile-examples | 取消设置时,只安装示例的源代码[yes] |
-gui | 构建Qt GUI模块和依赖项 [yes] |
-widgets | 构建Qt Widgets模块和依赖项 [yes] |
-no-dbus | 不要构建Qt D-Bus模块[Android和Windows默认] |
-dbus-linked | 构建Qt D-Bus并链接到libdbus-1 [auto] |
-dbus-runtime | 构建Qt D-Bus,动态加载libdbus-1 [no] |
-accessibility | 启用可访问性支持[yes]注意:不建议禁用可访问性 |
-qml-debug | 启用QML调试支持 [yes] |
核心选项:
Qt附带一些第三方库的捆绑副本。如果自动检测各自的系统库失败,默认情况下将使用这些。
[options] | [说明] |
---|
-doubleconversion | 选择使用 doubleconversion 库 ,取值[system/qt/no] 。 No意味着使用sscanf_l和snprintf_l(不精确) |
-glib | 启用Glib支持 [no; auto on Unix] |
-eventfd | 启用eventfd支持 |
-inotify | 启用inotify支持 |
-iconv | 启用iconv(3)支持 [posix/sun/gnu/no] (仅限Unix) |
-icu | 启用ICU支持 [auto] |
-pcre | 选择使用libpcre2 [system/qt] |
-pps | 启用PPS支持 [auto] (仅限QNX) |
-zlib | 选择使用zlib [system/qt] |
日志后端:
[options] | [说明] |
---|
-journald | 启用journald支持 [no] (仅限Unix) |
-syslog | 启用syslog支持 [no] (仅限Unix) |
-slog2 | 启用slog2支持 [auto] (仅限QNX) |
网络选项:
[options] | [说明] |
---|
-ssl | 启用任何SSL支持方法 [auto] |
-no-openssl | 不使用OpenSSL[默认在苹果和WinRT上] |
-openssl-linked | 使用OpenSSL并链接到libssl [no] |
-openssl-runtime | 使用OpenSSL并动态加载libssl [auto] |
-securetransport | 使用SecureTransport [auto] (仅限于苹果) |
-sctp | 启用SCTP支持[no] |
-libproxy | 启用libproxy [no] |
-system-proxies | 默认使用系统网络代理[yes] |
Gui, 打印, widget 选项:
[options] | [说明] |
---|
-cups | 启用 CUPS 支持 [auto] (仅限Unix) |
-fontconfig | 启用字体配置支持 [auto] (仅限Unix) |
-freetype | 选择使用FreeType, 取值[system/qt/no] |
-harfbuzz | 选择使用 HarfBuzz-NG ,取值[system/qt/no] (苹果和Windows没有自动检测) |
-gtk | 启用GTK平台主题支持 [auto] |
-lgmon | 启用lgmon支持[auto] (仅限QNX) |
-no-opengl | 禁用 OpenGL 支持 |
-opengl | 启用OpenGL的支持。支持的api: es2 (Windows默认)、desktop (Unix默认)、dynamic(仅Windows) |
-opengles3 | 启用 OpenGL ES 3.x 代替 OpenGL ES 2.x [auto] |
-angle | 使用绑定的角度来支持OpenGL es2.0 [auto] (仅限Windows) |
-combined-angle-lib | 将LibEGL和LibGLESv2合并到LibANGLE 中(仅限Windows) |
-qpa | 选择默认的QPA后端(例如,xcb、cocoa、windows) |
-xcb-xlib | 启用Xcb-Xlib支持 [auto] |
平台后端:
[options] | [说明] |
---|
-direct2d | 启用Direct2D支持[auto] (仅限Windows) |
-directfb | 启用 DirectFB 支持 [no] (仅限Unix) |
-eglfs | 启用 EGLFS 支持 [auto;在Android 和 Windows取值 no ] |
-gbm | 启用GBM的后端 [auto] (仅限Linux) |
-kms | 启用KMS的后端 [auto] (仅限Linux) |
-linuxfb | 启用Linux Framebuffer支持 [auto] (仅限Linux) |
-mirclient | 启用Mir客户端支持 [no] (仅限Linux) |
-xcb | 选择使用的xcb-*库 取值[system/qt/no] (-qt-xcb仍然使用系统版本的libxcb) |
输入后端:
[options] | [说明] |
---|
-evdev | 启用evdev支持[auto] |
-imf | 启用IMF支持 [auto] (QNX only) |
-libinput | 启用libinput支持 [auto] |
-mtdev | 启用mtdev支持[auto] |
-tslib | 启用tslib支持 [auto] |
-xinput2 | 启用XInput2支持 [auto] |
-xkbcommon-x11 | 选择与xkbcommon结合使用的 xcb 取值 [system/qt/no] |
-xkb-config-root <dir> | 使用-qt-xkbcommon-x11,设置默认的XKB配置根目录<dir> [detect] |
-xkbcommon-evdev | 结合libinput启用X-less xkbcommon [auto] |
图片格式:
[options] | [说明] |
---|
-gif | 启用GIF支持 [auto] |
-ico | 启用ICO支持 [yes] |
-libpng | 启用libpng支持 [system/qt/no] |
-libjpeg | 启用libjpeg支持 [system/qt/no] |
数据库选项:
[options] | [说明] |
---|
-sql-<driver> | 启用SQL plugin。支持驱动程序 :db2 ibase mysql oci odbc psql sqlite2 sqlite tds [auto] |
-sqlite | 选择使用 sqlite3 取值[system/qt] |
Qt3D 选项:
[options] | [说明] |
---|
-assimp | 选择assimp库 ,取值[system/qt/no] |
-qt3d-profile-jobs | 启用jobs分析 [no] |
-qt3d-profile-gl | 启用OpenGL分析 [no] |
多媒体选项:
[options] | [说明] |
---|
-pulseaudio | 启用PulseAudio支持[auto] (Unix only) |
-alsa | 启用ALSA支持[auto] (Unix only) |
-no-gstreamer | 禁止使用 GStreamer |
-gstreamer [version] | 启用GStreamer支持[auto],不带参数,先尝试1.0,然后尝试0.10. |
-mediaplayer-backend <name> | 选择media player后端(只支持Windows)支持后端:directshow(默认),wmf |