Qt源码编译configure配置参数

来源:互联网 发布:淘宝怎么搜索旺旺号 编辑:程序博客网 时间:2024/06/06 02:50

安装选项

选项作用-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-buildQt开发者编译和链接选项(包括自动测试/输出)*-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
-testcocoonInstrument Qt with the TestCocoon code coverage tool.
-gcovInstrument 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-errorsMake 时把warnings当做正常
-warnings-are-errorsMake时把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 pathAndroid SDK 根目录 
(默认 $ANDROID_SDK_ROOT)

-android-ndk pathAndroid 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许可不兼容。
原创粉丝点击