QT5.13.0 的./configure参数解释(最新版本)

一般来说大家就照着现有的参数复制上去,改下安装目录就行了。虽然有大量的配置选项和参数,但如果不是真的了解和需要接触的库/特性,都用不上。看一下大概的用法,以后有需要想起来或许有这个东西有用就行。

标红色的参数,我认为是比较常用的参数,在编译不同平台版本,裁剪等。需要多多了解。


用法:配置[选项][分配]
Usage:  configure [options] [assignments]

Configure理解变量赋值,比如命令行上的VAR=value。
每个大写的库名(可通过-list-libraries获得)支持_INCDIR、_LIBDIR、_PREFIX (INCDIR=PREFIX/include、LIBDIR=PREFIX/lib)、_LIBS和- on Windows和Darwin - _LIBS_DEBUG和_LIBS_RELEASE后缀。
例如,ICU_PREFIX=/opt/icu42 ICU_LIBS="-licui18n -licuuc -licudata"。

也可以操作任何QMAKE_*变量,修改mkspec中Qt构建本身的值,例如QMAKE_CXXFLAGS+=-g3。

注意,*_LIBS*和QMAKE_*赋值操作列表,因此需要根据qmake规则引用包含元字符(特别是空格)的项。
最重要的是,整个工作需要根据shell规则引用。建议内部引用使用单引号,外部引用使用双引号。


顶级安装目录:
configureoptionsassignments
-prefix<dir>部署目录如,目标设备上所示。[默认/usr/local/Qt-$QT_VERSION;如果加上选项-developer-build,在 qtbase 构建目录 ]
-extprefix<dir>安装目录,如主机上所示。[默认SYSROOT/PREFIX]
-hostprefix[dir]在主机上运行的构建工具的安装目录。如果没有给出[dir],则使用当前构建目录。[EXTPREFIX]
-external-hostbindir<path>为这台机器构建的Qt工具的路径。当-platform与当前系统不匹配时,则使用 Canadian 交叉编译。

下面的选项安装目录布局的细调。注意,所有目录除了-sysconfdir应该

位于-prefix/-hostprefix:

configureoptionsassignments
-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>Translations [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”表示值列表
没有自动选择。

配置选项:

configureoptionsassignments
-help-h显示帮助文档
-verbose-v打印详细的配置消息
-continue 尽管有错误,仍然继续 configure
-redo 重新配置以前使用的选项。可以传递其他选项,但以后使用不会保存 -redo选项。
-recheck[test,...]丢弃缓存的负配置测试结果。安装丢失的依赖项后使用。或者,如果指定了测试,则只丢弃它们的结果。
-recheck-all 丢弃所有缓存的配置测试结果。
-feature-<feature>启动 <feature>
-no-feature-<feature>禁止 <feature> [none]用于包含和排除特性。可用的<feature>都被罗列在qtbase/src/corelib/global/qfeatures.txt文件中。
                         比如,要禁用accessibility特性,可用使用-no-feature-accessibility选项,如下所示:./configure -no-feature-accessibility
 -list-features 列出可用功能特性。注意,有些特性还有专用的命令行选项。
-list-libraries 列出可能的外部依赖项。

构建选项:

configureoptionsassignments
-opensource 构建Qt的开源版本
-commercial 构建Qt的商业版本
-confirm-license 自动确认许可
-release 构建Qt的release版本(关闭调制) [yes]
-debug 构建Qt的debug(开启调试)[no]
-debug-and-release 构建两个版本的Qt [yes] (只适用于apple 和 window)
-optimize-debug 在调试构建中启动调试友好的优化 [auto] (不支持 MSVC 和Clang工具链)
-optimize-size 优化release版本的大小而不是速度 [no]
-optimize-tools 构建优化的主机工具,即使在 debug版本中 [no]
-force-debug-info 为 release 版本构建符号文件 [no]
-separate-debug-info 将调试信息分离到单独的文件中 【no】
-gdb-index 索引调试信息以加速GDB 【no;auto 如果加上-developer-build 选项】
-strip 去掉 release 版本不需要的二进制符号文件【yes】
-gc-binaries  将每个函数或数据项放入自己的节(section)中,并启动链接器收集未使用的节(section)【auto (静态编译),no (其他情况下)】
-force-asserts 在 release 版本使用 Q_ASSERT 【no】
-developer-build 编译并链接Qt以开发Qt本身 (导出用于自动测试、额外检查等)【no】
-shared 

构建 Qt 共享库 【yes】 (no for UIKit)

-static 构建 Qt 静态库 【no】 (yes for UIKit)
-framework 构建 Qt 框架包 【yes】 (Apple only)
-platform <target>选择主机的编译器与系统(可见源码/qtbase/mkspecs) 【detected】
-xplatform<target>在交叉编译时,选择目标的编译器与系统 【paltform】同上
-device<name>指定交叉编译时的目标设备或芯片 (可见源码/qtbase/mkspecs/devices)
-device-option<key=value>为目标设备添加额外的qmake参数
-appstore-compliant 禁用平台应用商店中不允许的代码。对于需要通过应用商店分发的平台,特别时Android、iOS、tvOS、watchOS和通用Windows平台,这是默认打开的
-qtnamespace<name>把所有 Qt 库代码封装在 ‘namespace <name> {...} ’
-qtlibinfix<infix>把所有libQt5*.so 动态库名字改为 libQt5*<infix>.so
-testcocoon 使用TestCocoon代码覆盖工具进行测试 【no】
-gcov 使用GCov代码覆盖工具测试 【no】
-trace【backend】使用仪器的跟踪点(tracepoints),目前支持的后端时‘etw’ (Windows)和‘lttng’ (Linux),或 ‘yes’ 用于自动检测。
-sanitize{address | thread | memory
 underfined }
使用指定的编译器杀毒工具。注意,有些杀毒程序不能组合使用;例如,-sanitize address 不能与 -sanitize thread 组合使用
-coverage{trace-pc-guard}添加代码覆盖工具(Clang only)
-c++std<edition>选择c++标准 <edition> [c++2a /c++17 /c++14 /c++11] 不支持 MSVC 2015
-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。在Apple平台上上,禁用它意味着对动态库和框架使用绝对安装名称(基于LIBDIR) 【auto】
-reduce-exports 减少输出符号的数量 【auto】
-reduce-relocations 减少重定位段的数量 【auto】(Unix only)
-plugin-manifests 将屏幕嵌入到插件中 【no】 (Windows only)
-static-runtime 对于-static,使用静态运行 【no】 (Windows only)
-pch 使用预编译头【auto】
-ltcg 使用链接时间代码生成【no】
-linker【bfd,gold,lld】强制使用GNU ld、GNU gold 或 LLVM / LLD链接器代替默认的(GCC only)
-incredibuild-xge 使用 IncrediBuild XGE 【no】(Windows only)(分布式编译工具?)
-ccache 使用ccache编译器缓存【no】(Unix only)
-make-tool <tool><tool>使用<tool>来建立 qmake 【nmake】(Windows only)
-mp  使用多个处理器进行编译 (MSVC only)
-warnings-are-errors 将警告视为错误 【no;yes 如果添加选项 -developer-build】
-silent 减少构建输出,以便更容易地看到警告和错误

构建环境 :

configureoptionsassignments
-sysroot<dir>设置目标sysroot为<dir>
-gcc-sysroot 使用选项-sysroot,将 - - sysroot传递编译器 【yes】
-pkg-config 使用pkg-config 【auto】(Unix only)
-D<string>传递额外的预处理器定义
-I (大写i)<string>传递额外的头文件路径
-L<string>传递额外的库文件路径
-F<string>传递额外的框架路径(Apple only)
-sdk<sdk>使用苹果提供的SDK<SDK>构建Qt。参数应该是“xcodebuild -showsdks”列出的可用sdk之一。注意,这个参数只适用于使用目标mkspec构建的Qt库和应用程序,而不是像qmake、moc、rcc等主机工具
-android-sdk path 设置 Android SDK 根目录 【$ANDROID_SDK_ROOT】
-android-ndk path 设置 Android NDK 根目录 【$ANDROID_NDK_ROOT】
-android-ndk-host 设置Android NDK主机 (linux-x86,linux-x86_64,etc.) 【$ANDROID_NDK_HOST】
-android-arch 设置 Android 体系架构(armeabi,armeabi-v7a,arm64-v8a,x86,x86_64)
-android-toolchain-version 设置Android 工具链的版本
-android-style-assets 在运行时自动从设备中提取样式表。这个选项使Android 风格的行为正确,但也使Android平台插件与LGPL2.1不兼容,【yes】

configureoptionsassignments
-skip<repo>从构建中排除整个存储库,(去除某个模块,参考源代码根目录)
-make

<part>

将<part>添加到要构建的部件列表中。指定此选项将首先清除默认列表。【可选 libs、tools、examples、demos、docs、translations】

【libs、tools、example如果不是交叉编译构建,还有tests,在加上选项 -developer-build】

-nomake<part>从要构建的部件列表总排除<part>
-compile-examples 取消设置时,只安装示例的源代码 【no on WebAssembly,otherwise,yes】
-gui 构建Qt GUI模块和依赖项【yes】
-widgets 构建Qt Widgets模块和依赖项【yes】
-no-dbus 不构建Qt D-Bus模块 【default on Android and Windows】
-dbus-linked 构建Qt D-Bus并链接到 libdbus-1 【auto】
-dbus-runtime 构建Qt D-Bus并动态加载 libdbus-1 【no】
-accessibility 启用可访问性支持【yes】 注意:不建议禁用可访问性

Qt附带了一些第三方库的捆绑拷贝。如果各自系统库的自动检测失,则使用默认的。

核心选项:

configureoptionsassignments
-doubleconversion 选择使用double conversion库(双精度转换?)【system/qt/no】
-glib 启动 Glib 支持 【no;auto on Unix】
-eventfd 启用 eventfd 支持
-inotify 启用 inotify 支持
-iconv 启用 iconv(3)支持 【posix/sun/gnu/no】(Unix only)
-icu 启用 ICU 支持 【auto】
-pcre 选择使用 libpcre2 【system/qt】
-pps 启用 PPS 支持 【auto】(QNX only)
-zlib 选择使用 zlib 【system/qt】

日志后端:

configureoptionsassignments
-journald 启用 journald 支持 【no】(Unix only)
-syslog 启用 syslog 支持 【no】(Unix only)
-slog2 启用 slog2 支持 【auto】(QNX only)

网络选项:

configureoptionsassignments
-ssl 启用所有SSL支持方法【auto】
-no-openssl 不适用OpenSSL (default on Apple and WinRT)
-openssl-linked 使用 OpenSSL 和链接到 libssl 【no】
-openssl-runtime 使用OpenSSL 和动态加载 libssl 【auto】
-securetransport 使用安全传输【auto】
-sctp 启用 SCTP 支持 【no】
-libproxy 启用 libproxy 【no】
-system-proxies 默认使用系统网络代理 【yes】

Gui, 打印, widget 选项:

configureoptionsassignments
-cups 启用 CUPS 支持(打印)【auto】(Unix only)
-fontconfig 启用 Fontconfig 支持 (字体库) 【auto】 (Unix only)
-freetype 选择使用 FreeType(字体库) 【system / qt / no】
-harfbuzz 选择使用 HarfBuzz-NG (字体库)【system / qt / no】
-gtk 启用 GTK 平台支持主题 (GUI) auto
-lgmon 启用 lgmon 支持 【auto】 (QNX only)
-no-opengl 禁用 OpenGL 支持
-opengl<api>启用 OpenGL 支持,支持的APIs:es2 (default on Windows),desktop (default on Unix),dynamic (Windwos only)
-opengles3 启用 OpenGL ES 3.x 支持代替 ES 2.x 【auto】
-angle 使用绑定的角度来支持 OpenGL ES 2.0 【auto】(Windows only)
-combined-angle-lib 将 LibEGL 和 LibGLESv2 合并到 LibANGLE (Windows only)
-qpa <name>选择默认 QPA 后端 (s)(e.g,xcb,cocoa,windows)用逗号分开的优先列表
-xcb-xlib 启用 Xcb-Xlib 支持 【auto】

平台后端:

configureoptionsassignments
-direct2d 启用 Direct2D 支持【auto】(Windows only)
-directfb 启用 DirectFB 支持【no】(Unix only)
-eglfs 启用 EGLFS 支持 【auto;no on Android and Windows】

-gbm

 启用 backends for GBM 【auto】 (Linux only)
-kms 启用 backends for KMS 【auto】 (Linux only)
-linuxfb 启用 Linux Framebuffer 支持 【auto】 (Linux only)
-mirclient 启用 Mir client 支持 【no】(Linux only)
-xcb 启用 X11 支持,选择使用 xcb-*库 【system / qt / no】(-qt-xcb 仍然使用 libxcb 本身的系统版本)

输入后端:

configureoptionsassignments
-libudev 启用 udev 支持 【auto】
-evdev 启用 evdev 支持 【auto】
-imf 启用 IMF 支持【auto】 (QNX only)
-libinput 启用 libinput 支持 【auto】
-mtdev 启用 mtdev 支持 【auto】
-tslib 启用 tslib 支持 【auto】
-xcb-xinput 启用 XInput2 支持 【auto】
-xkbcommon 启用 key mapping 支持 【auto】

图片格式:

configureoptionsassignments
-gif 启用对 GIF 的读取支持 【auto】
-ico 启用 ICO 支持 【yes】
-libpng 选择使用 libpng 【system / qt / no】
-libjpeg 选择使用 libjpeg 【system / qt /no】 

configureoptionsassignments
-sql-<driver>启用 SQL<driver> 插件,支持的驱动程序:db2、ibase、mysql、oci、odbc、psql、sqlite2、sqlite、tds 【all auto】
-sqlite 选择使用 sqlite3 【system / qt】

Qt3D 选项:

configureoptionsassignments
-assimp 选择使用 assimp 库 【system / qt / no】
-qt3d-profile-jobs 启用 工作简介 【no】
-qt3d-profile-gl 启用 OpenGL简介 【no】
-qt3d-simd 选择 SIMD的支持级别 【no / sse2 / avx2】
-qt3d-render 启用 Qt3D 渲染部分 【yes】
-qt3d-input 启用 Qt3D 输入部分 【yes】
-qt3d-logic 启用 Qt3D 逻辑部分 【yes】
-qt3d-extras 启用 Qt3D 额外部分 【yes】
-qt3d-animation 启用 Qt3D 动画部分 【yes】

进一步的图像格式选项:

configureoptionsassignments
-jasper 启用 JPEG-2000 支持是使用 JasPer 库【no】
-mng 启用 MNG 支持 【no】
-tiff 启用 TIFF 支持 【system / qt / no】
-webp 启用 WEBP 支持 【system / qt / no】

多媒体选项:

configureoptionsassignments
-pulseaudio 启用 PulseAudio 支持 【auto】 (Unix only)
-alsa 启用 ALSA 支持 【auto】 (Unix only)
-no-gstreamer 禁用 GStreamer
-gstreamer【version】启用 GStreamer 支持 【auto】
-evr 禁用 EVR 在 DirectShow 和WMF 情况下 【auto】

Web引擎选项:

configureoptionsassignments
-webengine-alsa 启用 ALSA 支持 【auto】 (Linux only)
-webengine-pulseaudio 启用 PulseAudio 支持 【auto】(Linux only)
-webengine-embedded-build 禁止构建 Linux embedded 【auto】(Linux only)
-webengine-icu 使用系统 ICU 库【system / qt】(Linux only)
-webengine-ffmpeg 使用系统 FFmpeg库 【system / qt】(Linux only)
-webengine-opus 使用系统 Opus库【system / qt】(Linux only)
-webengine-webp 使用系统 WebP库 【system / qt】(Linux only)
-webengine-pepper-plugins 启用 Pepper Flash and Widevine plugins 【auto】
-webengine-printing-and-pdf 启用 打印和输出到 PDF【auto】
-webengine-proprietary-codecs 启用对 proprietary codecs 的支持 【no】
-webengine-spellchecker 启用对 spellchecker 的支持 【yes】
-webengine-native-spellchecker 启用对 native spellchecker 的支持 【no】(macOS only)
-webengine-webrtc 启用对 WebRTC 的支持【auto】

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值