qt5的configure选项说明

一、配置选项查看及初步解释

通过下面命令查看都有哪一些编译配置选项。

./configure -help

 
 
  • 1

有一些选项的后面有中括号[]括起来的值,有以下三种情况,分别举例。

  • yes,表示该选项默认选中。
  • no,表示该选项默认不选中。
  • auto,应当是系统会自动检测是否添加该选项吧。
    • 那可以通过 --xxx=no或者-xxx=yes来进行手动配置。例如:-qt-freetype <=> --freetype=qt;-no-openssl <=> --openssl=no

变量配置方法: -VAR=VALUE的形式。

1、安装选项
  • -prefix: 指定部署目录,默认路径为 /usr/local/Qt-$QT_VERSION
  • -extprefix: 指定安装目录,如主机上所示,[SYSROOT/PREFIX]。
  • -hostprefix: 指定运行在本主机上的构建工具的安装目录,如果不指定则使用当前目录。
  • -external-hostbindir: 指定为这台机器构建的Qt工具路径,当-platform和当前系统不匹配时使用,例如:创建交叉编译。

可以使用下面选项来对安装目录进行微调,请注意,所有目录除-sysconfdir外,其他的应位于-prefix和-hostprefix下。

  • -bindir: 可执行文件安装目录,[PREFIX/bin]。
  • -headerdir: 头文件安装目录,[PREFIX/include]。
  • -libdir: 库文件安装目录,[PREFIX/lib]。
  • -archdatadir: Arch-dependent 数据安装目录,[PREFIX]。
  • -plugindir: 插件安装目录,[ARCHDATADIR/plugins]。
  • -libexecdir: 辅助程序安装目录,[ARCHDATADIR/bin on Windows, ARCHDATADIR/libexec otherwise]
  • -importdir: QML1 导入安装目录,[ARCHDATADIR/imports]。
  • -qmldir: QML2 导入安装目录,[ARCHDATADIR/qml]。
  • -datadir: Arch-independent 数据安装目录,[PREFIX]。
  • -docdir: 文档安装目录,[DATADIR/doc]。
  • -translationdir: 翻译数据安装目录,DATADIR/translations]。
  • -sysconfdir: QT 程序使用的设置目录,[PREFIX/etc/xdg]。
  • -examplesdir: 示例安装目录,[PREFIX/examples]。
  • -testsdir: 测试安装目录,[PREFIX/tests]。
  • -hostbindir: 主机可执行文件安装目录,[HOSTPREFIX/bin]。
  • -hostlibdir: 主机库文件安装目录,[HOSTPREFIX/lib]。
  • -hostdatadir: qmake 所使用的数据目录,[HOSTPREFIX]。
2、配置选项
  • -help: -h 显示帮助信息。
  • -verbose: -v 配置过程中打印每个步骤的的详细信息。
  • -continue: 如果发生错误,尽管继续。
  • -redo: 重新配置以前使用的选项,可能会传递其他额外的选项,但不会保存供稍后的-redo选项使用。
  • -recheck [test,…]: 丢弃缓存的无用的配置测试结果,在安装完丢失的依赖项后使用该选项,或者,如果指定了 tests,只有它们的结果会被丢弃。
  • -recheck-all: 丢弃所有缓存的配置测试结果。
  • -feature-<feature>: 启用<feature>。
  • -no-feature-<feature>: 禁止<feature>,[none]。
  • -list-features: 列出可用的特性,请注意,一些特性还有专用的命令行选项。
  • -list-libraries: 列出可能的外部依赖项。
3、编译选项
  • -opensource: 编译Qt的开源版本。
  • -commercial: 编译Qt的商业版。
  • -confirm-license: 自动确认许可。
  • -release: 编译Qt的release版本,关闭调试,[yes]。
  • -debug: 编译Qt的debug版本,开启调试,[no]。
  • -debug-and-release: 编译Qt的release和debug两个版本,[yes] (Apple and Windows only)。
  • -optimize-debug: 在调试构建中启用调试友好的优化,[auto] (Not supported with MSVC or Clang toolchains)。
  • -optimize-size: 优化发布版本的大小而不是速度,[no]。
  • -optimized-tools: 构建优化的主机工具,即使在调试构建,[no]。
  • -force-debug-info: 强制为release构建输出调试信息,[no]。
  • -separate-debug-info: 将调试信息到一个单独的文件,[no]。
  • -gdb-index: 将调试信息索引到加速 GDB, [no; auto if -developer-build with debug info]。
  • -strip: 使用 strip 去除不需要符号的二进制文件,[yes]。
  • -gc-binaries: 将每个函数或数据项放入各自的分区中,启用未使用分区的链接器垃圾回收,[auto for static builds, otherwise no]。
  • -force-asserts: 启用 Q_ASSERT 即使在 release 版本中,[no]。
  • -developer-build: 编译和链接 Qt 用以开发 Qt 本身,(exports for auto-tests, extra checks, etc.) [no]。
  • *-shared: 构建 Qt 共享库,[yes] (no for UIKit)。
  • -static: 构建 QT 静态库,[no] (yes for UIKit)。
  • -framework: 构建 Qt 框架包,[yes] (Apple only)。
  • -platform <target>: 选择要构建的主机 mkspec,[detected]。
  • -xplatform <target>: 选择交叉编译时的目标 mkspec,[PLATFORM]
  • -device <name>: 交叉编译<name>设备。
  • -device-option <key=value>: 添加选项到设备的 mkspec。
  • -appstore-compliant: 禁用平台应用程序商店中不允许的代码,对于需要通过 app store 进行分发的平台,这是默认打开的,特别是: Android, iOS, tvOS, watchOS, and Universal Windows Platform,[auto]。
  • -qtnamespace <name>: 把所有的 Qt 库代码放入namespace{…}中。
  • -qtlibinfix <infix>: 重命名所有libQt*.so为libQt*<infix>.so。
  • -qtlibinfix-plugins: 通过-qtlibinfix重命名 Qt 插件,[no]。
  • -testcocoon: Instrument with the TestCocoon code coverage tool,[no]。
  • -gcov: Instrument with the GCov code coverage tool,[no]。
  • -trace [backend]: Enable instrumentation with tracepoints,目前支持的后端有: ‘etw’ (Windows) and ‘lttng’ (Linux), or ‘yes’ for auto-detection,[no]。
  • -sanitize [address/thread/memory/undefined]: Instrument with the specified compiler sanitizer,请注意,一些 sanitizers 是不能混合使用,例如: -sanitize address不能和-sanitize thread一起使用。
  • -coverage {trace-pc-guard}: 添加代码覆盖工具, (Clang only)。
  • -c++std <edition>: 选择 C++ 标准<edition>,[c++2a/c++17/c++14/c++11] (Not supported with 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: Reduce amount of relocations,[auto] (Unix only)。
  • -relocatable: 允许重新安装Qt,[auto]。
  • -plugin-manifests: Embed manifests into plugins,[no] (Windows only)。
  • -static-runtime: With -static, use static runtime,[no] (Windows only)。
  • -pch: 使用预编译头文件,[auto]。
  • -ltcg: 使用链接时代码生成,[no]。
  • -linker [bfd,gold,lld]: 强制使用 GNU ld,GNU gold or LLVM/LLD 链接器而不是默认值,(GCC only)。
  • -incredibuild-xge: 使用 IncrediBuild XGE,[no] (Windows only)。
  • -ccache: 使用 ccache 编译器缓存,[no] (Unix only)。
  • -make-tool <tool>: 使用<tool>来构建 qmake,[nmake] (Windows only)。
  • -mp: 使用多个处理器进行编译,(MSVC only)。
  • -warnings-are-errors: 将警告视为错误,[no; yes if -developer-build]。
  • -silent: 减少编译输出,以便更容易地看到警告和错误。
4、编译环境
  • -sysroot <dir>: 将 <dir> 设置为目标 sysroot。
  • -gcc-sysroot: 使用 -sysroot,将 --sysroot 传给编译器,[yes]。
  • -pkg-config: 使用 pkg-config,[auto] (Unix only)。
  • -D <string>: 传递额外的预处理定义。
  • -I <string>: 传递额外的包含路径。
  • -L <string>: 传递额外的库路径。
  • -F <string>: 传递额外的框架路径, (Apple only)。
  • -sdk <sdk>: 使用 Apple 提供的 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-platform: 设置 android 平台。
  • -android-ndk-host: 设置 Android NDK 主机,(linux-x86, linux-x86_64, etc.) [$ANDROID_NDK_HOST]。
  • -android-abis: 逗号分隔 Android abis,默认有: armeabi-v7a,arm64-v8a,x86,x86_64。
  • -android-style-assets: 运行时自动从设备提取 style assets,这个选项可以确保正确的 Android style,但也会使得 Android 平台插件与 LGPL2.1 不兼容,[yes]。
5、组件选择
  • -skip <repo>: 从构建中排除整个存储库。
  • -make <part>: 在 make 时添加要构建的<part>组件,[libs and examples, also tools if not cross-building, also tests if -developer-build]。
  • -nomake <part>: 在 make 时排除不构建的<part>组件。
  • -compile-examples: 构建和安装 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 附带了一些第三方库的捆绑拷贝,如果各自系统库的自动检测失败,下面这些会被默认使用。

6、核心选项
  • -doubleconversion: 选择使用双转换库,no 意味着使用 sscanf_l 和 snprintf_l(不精确),[system/qt/no]。
  • -glib: 启用对 Glib 支持,[no; auto on Unix]。
  • -eventfd: 启用对 eventfd 的支持。
  • -inotify: 启用对 inotify 的支持。
  • -iconv: 启用对 iconv(3) 的支持,[posix/sun/gnu/no] (Unix only)。
  • -icu: 启用对 ICU 库的支持,这是 IBM 发布的字符集编码转换库,[auto]。
  • -pcre: 选择使用 libpcre2,[system/qt/no]。
  • -pps: 启用对 PPS 的支持,[auto] (QNX only)。
  • -zlib: 选择使用 zlib,[system/qt]。

后端日志:

  • -journald: 启用对 journald 的支持,[no] (Unix only)。
  • -syslog: 启用对 syslog 的支持,[no] (Unix only)。
  • -slog2: 启用对 slog2 的支持,[auto] (QNX only)。
7、网络选项
  • -ssl: 启用对任何一种SSL方法的支持,[auto]。
  • -no-openssl: 不适用 OpenSSL,[default on Apple and WinRT]。
  • -openssl-linked: 使用 OpenSSL 并链接到 libssl,[no]。
  • -openssl-runtime: 使用 OpenSSL 并动态加载 libssl,[auto]。
  • -schannel: 使用安全通道,[no] (Windows only)。
  • -securetransport: 使用安全传输,[auto] (Apple only)。
  • -sctp: 启用对 SCTP 的支持,[no]。
  • -libproxy: 启用对 libproxy 的使用,[no]。
  • -system-proxies: 默认使用系统网络代理,[yes]。
8、Gui, printing, widget选项
  • -cups: 启用对 CUPS 的支持,[auto] (Unix only)。
  • -fontconfig: 启用对 Fontconfig 的支持,[auto] (Unix only)。
  • -freetype: 选择使用 FreeType,[system/qt/no]。
  • -harfbuzz: 选择使用 HarfBuzz-NG,[system/qt/no] (Not auto-detected on Apple and Windows)。
  • -gtk: 启用对 GTK 平台主题的支持,[auto]。
  • -lgmon: 启用对 lgmon 的支持,[auto] (QNX only)。
  • -no-opengl: 禁止对 OpenGL 的支持。
  • -opengl <api>: 启用对 OpenGL 的支持,支持的 APIs: es2 (default on Windows),desktop (default on Unix),dynamic (Windows only)。
  • -opengles3: 启用对 OpenGL ES 3.x 替换 ES 2.x 的支持,[auto]。
  • -egl: 启用对 EGL 的支持,[auto]。
  • -angle: 使用绑定的 ANGLE 来支持 OpenGL ES 2.0,[auto] (Windows only)。
  • -combined-angle-lib: 将 LibEGL 和 LibGLESv2 合并到 LibANGLE 中,(Windows only)。
  • -qpa <name>: 选择默认的 QPA 后端,用分号分隔的优先级列表,(e.g., xcb, cocoa, windows)。
  • -xcb-xlib: 启用对 Xcb-Xlib 的支持,[auto]。
    Platform backends:
  • -direct2d: 启用对 Direct2D 的支持,[auto] (Windows only)。
  • -directfb: 启用对 DirectFB 的支持,[no] (Unix only)。
  • -eglfs: 启用对 EGLFS 的支持,[auto; no on Android and Windows]。
  • -gbm: 为 GBM 启用后端,[auto] (Linux only)。
  • -kms: 为 KMS 启用后端,[auto] (Linux only)。
  • -linuxfb: 启用 Linux Framebuffer 的支持,[auto] (Linux only)。
  • -xcb: 启用 X11 的支持,选择使用 xcb-* 库,[system/qt/no] (-qt-xcb still uses system version of libxcb itself)。

后端输入:

  • -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: 启用对键映射的支持,[auto]。

图片格式:

  • -gif: 启用对 GIF 的读取支持,[auto]。
  • -ico: 启用对 ICO 的支持,[yes]。
  • -libpng: 选择使用 libpng,[system/qt/no]。
  • -libjpeg: 选择使用 libjpeg,[system/qt/no]。
9、数据库选项
  • -sql-<driver>: 启用 SQL <driver> 插件,支持的驱动程序有: db2、ibase、mysql、oci、odbc、 psql、sqlite2、sqlite、tds,[all auto]。
  • -sqlite: 选择使用 sqlite3,[system/qt]。
10、Qt 3D选项
  • -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]。
11、进一步图片格式选项
  • -jasper: 启用 JPEG-2000 中对 JasPer 库的支持,[no]。
  • -mng: 启用对 MNG 的支持,[no]。
  • -tiff: 启用对 TIFF 的支持,[system/qt/no]。
  • -webp: 启用对 WEBP 的支持,[system/qt/no]。
12、多媒体选项
  • -pulseaudio: 启用对 PulseAudio 的支持,[auto] (Unix only)。
  • -alsa: 启用对 ALSA 的支持,[auto] (Unix only)。
  • -no-gstreamer: 禁止对 GStreamer 的支持。
  • -gstreamer <version>: 启用对 GStreamer 的支持,在没有版本参数的情况下先尝试1.0,然后尝试0.10,[auto]。
  • -evr: 在 DirectShow 和 WMF 中启用对 EVR 的支持,[auto]。
13、QtQuick 3D选项
  • -assimp: 选择使用assimp库,[system/qt/no]。
14、文字转音频选项
  • -flite: 启用对 Flite 的持之,[auto] (Unix only)。
  • -flite-alsa: 启用 Flite 与 ALSA 的支持,[auto] (Unix only)。
  • -speechd: 启用语音分配器支持,[auto] (Unix only)。
15、Web引擎选项
  • -webengine-alsa: 启用 对ALSA 的支持,[auto] (Linux only)。
  • -webengine-pulseaudio: 启用对 PulseAudio 的支持,[auto] (Linux only)。
  • -webengine-embedded-build: 启用 Linux 嵌入式构建,[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 和Widevine 插件,[auto]。
  • -webengine-printing-and-pdf: 允许打印和输出到 PDF,[auto]。
  • -webengine-proprietary-codecs: 启用对专有编解码器的支持,[no]。
  • -webengine-spellchecker: 启用对拼写检查程序的支持,[yes]。
  • -webengine-native-spellchecker: 启用对本机拼写检查程序的支持,[no] (macOS only)。
  • -webengine-webrtc: 启用对 WebRTC 的支持,[auto]。

参考1:https://blog.csdn.net/hezhanran/article/details/101512974

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt对线程提供了支持,基本形式有独立于平台的线程类、线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法。 这个文档是提供给那些对多线程编程有丰富的知识和经验的听众的。推荐阅读: Threads Primer: A Guide to Multithreaded Programming Thread Time: The Multithreaded Programming Guide Pthreads Programming: A POSIX Standard for Better Multiprocessing (O'Reilly Nutshell) Win32 Multithreaded Programming 警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心类(比如,QProcess)和网络类都不是线程安全的。 QRegExp使用一个静态缓存并且也不是线程安全的,即使通过使用QMutex来保护的QRegExp对象。 启用线程支持 在Windows上安装Qt时,在一些编译器上线程支持是一个选项。 在Mac OS X和Unix上,线程支持可以当你在运行configure脚本时添加-thread选项就可以生效了。在Unix平台上,多线程程序必须用特殊的方式连接,比如使用特殊的libc,安装程序将会创建另外一个库libqt-mt并且因此线程程序必须和这个库进行连接(使用-lqt-mt)而不是标准的Qt库。 在两个平台上,你都应该定义宏QT_THREAD_SUPPORT来编译(比如,编译时使用-DQT_THREAD_SUPPORT)。在Windows上,这个通常可以在qconfig.h写一个条目来解决。 线程类 最重要的类是QThread,也就是说要开始一个新的线程,就是开始执行你重新实现的QThread::run()。这和Java的线程类很相似。 为了写线程程序,在两个线程同时希望访问同一个数据时,对数据进行保护是很必要的。因此这里也有一个QMutex类,一

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值