在尝试编译 Qt 5.x 之前,您可能需要安装一些库(取决于您要编译的模块):
- ActivePerl (** 需要,因为它用于配置qtsdk )
- 微软视窗 SDK 7.1
- 微软 DirectX SDK
- Python
- 重症监护室
- ...
如果您计划使用内部使用相同库(例如 zlib)的库(例如 Assimp),您可能必须使用最新版本覆盖位于qtbase\src\3rdparty子目录中的这些库。
编辑位于qtbase目录中的文件configure.bat,并注释掉第 45 行:
::if not exist %QTSRC%\.gitignore goto sconf
编辑文件qmake.conf,位于qtbase\mkspecs\win32-msvc2010(如果您使用 Visual Studio 2010)或qtbase\mkspecs\win32-msvc2012(如果您使用 Visual Studio 2012):
- 第 9 行:
CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target
- 第 23 行:
QMAKE_CFLAGS_RELEASE = -O2 -MT
- 第 24 行:
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
- 第 25 行:
QMAKE_CFLAGS_DEBUG = -Zi -MTd
启动Visual Studio 命令提示符:开始 > 程序 > Microsoft Visual Studio 20XX > Visual Studio 工具。
确保Perl.exe的路径在PATH环境变量中:(PATH=%PATH%;C:\Perl\bin
或者PATH=%PATH%;C:\Perl64\bin
如果为 x64 编译)。
进入qtbase目录:CD \Qt\5.0.1\qtbase
.
配置 Qt 以编译静态调试和发布版本:
configure -developer-build -opensource -confirm-license -platform win32-msvc2010 -mp -nomake examples -nomake tests -static
(如果您使用的是 Visual Studio 2010)
configure -developer-build -opensource -confirm-license -platform win32-msvc2012 -mp -nomake examples -nomake tests -static
(如果您使用的是 Visual Studio 2012)
如果需要,可以稍后编译示例和测试。
如果您打算使用
OpenGL,请添加
-opengl desktop
到命令行,否则 Qt 将默认使用面向移动设备的 OpenGL/ES。
如果您的 CPU 不支持多核,请删除该
-mp
选项。
返回父目录:CD ..
.
再次配置 Qt : configure -developer-build -opensource -confirm-license -platform win32-msvc20
XX -opengl desktop -mp -nomake examples -nomake tests -static
(我不确定这一步是否需要,但只需几秒钟......)。
编译:nmake
。
另一种编译方法是使用jom并指定要使用的 CPU 内核数:C:\Qt\jom\jom.exe -j #NUMBER_OF_CORES#
。
您将在qtbase\lib文件夹中找到已编译的静态库,并在 qtbase \ include 的子目录中包含要包含的文件。
要使用它们,您必须在 Visual C++ 项目中使用静态运行时库(/MT
或/MTd
)。