选项
|
作用
|
-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)
|
下表中第一列中的
*
表示默认并可行的。
+
表示默认,但需要进行评估(检测),评估通过才可接受。
|
选项
|
作用
|
*
|
-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*.so
为
libQt*<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许可不兼容。
|
Qt
源码
编译
./
configure
-prefix $PWD/
qt
base -opensource
报错 ERROR: The OpenGL functionality tests failed
ubuntu 14.04 LTS
qt
-everywhere-opensource-src-5.9.9
转自:https://blog.csdn.net/hulingerlin/article/details/81914279
参照该博客基础上,添加一些自己
编译
中遇到的问题与解决情况。
1.
编译
的前的基础了解
目标platforms(平台),
编译
静态库或者动态库,skip某个功能模块等选项
2.
源码
下载
1.直接下载,下载地址:http://download.
qt
.io/archive/
qt
/
选择含有everywhere-src的版本即为
qt
源码
版本,我此处下载的是:
qt
-everywhere.
传统上,MinGW-w64
编译
器使用 MSVCRT 作为运行时库,它在所有版本的 Windows 上都可用。尽管 GCC 和 MinGW-w64 可以在其他平台(例如
Linux
)上用于生成 Windows 可执行文件,但 WinLibs 项目只专注于构建在 Windows 上本地运行的版本。(GNU Compiler Collection)是一个免费的开源
编译
器,适用于 C 和 C++(以及其他语言,如 Objective-C、Fortran、D)。......
计算机环境:WIN 10
编译
环境:
qt
mingw64_4.9.2(
qt
官方不提供64bit的mingw版本,所以这个是我自己
编译
的)
box2d
源码
:github上搜索即可。
解压box2d
源码
,
源码
目录结构如下,进入box2d目录。(box2d-build文件夹为我
编译
生成dll和dll.a文件路径,请忽略)
使用
qt
creator打开上述box2d文件夹中的cmake
1. 为什么要静态
编译
程序?
在默认情况下,用
Qt
Creator
编译
程序时,使用的是动态
编译
,这就导致
编译
好的程序在运行时需要另外加上相应的
Qt
库文件,以及一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,并且可以在一台没有开发环境的电脑上运行,那就需要使用静态
编译
。
2. 运行环境
Windows10
QT
Creator 4.11.0
QT
5.14.0 + Python 3.6 + gcc 7.3.0 + perl 5.22.1
3. 实现步骤
(1)安装
QT
configure
-confirm-license -opensource -platform win32-msvc2013 -mp -debug-and-release -static -prefix "E:\
Qt
\5.3.1-static-vs2013" -
qt
-sql-sqlite -
链接:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/
链接:https://sourceforge.net/projects/mingw-w64/files/T...
configure
meta: -help,-h ............显示此帮助屏幕 -verbose,-v .........在
配置
期间输出详细消息 -continue............尽管有错误仍然继续
配置
-redo ................用以前使用的选项重新
配置
。其他选项可能会通过,但不会保存以供-redo稍后使用。 -recheck ...............
=================================
====全文是按照./
configure
-help来翻译的========
==================================
Usage:
configure
[-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
[-docdir <dir>] [-headerdir...