一.编译工具
1.VS2015
编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2)。因为Update补丁向下兼容,我用的是Visual Studio 2015 (Update3)。
2.Python
我用的是python-2.7.9,去官网下个最新版的也行。
安装后将C:\Python27(我的)添加到path环境变量
3.Perl
我用的ActivePerl-5.16.2.1602,去官网下载个最新的也行。
安装后将C:\Perl\bin(我的)添加到path环境变量。如果安装时勾选了添加到环境变量的选项,就不用手动添加了。
参考链接:http://doc.qt.io/qt-5/windows-requirements.html
二.编译准备
1.我之前安装了qt-opensource-windows-x86-msvc2015-5.7.0.exe,并且安装时勾选了包含源码。将源码D:\Qt\Qt5.7.0VS2015\5.7\Src拷贝到D盘根目录。
2.在D盘新建D:\QtStatic\Qt5.7.0VS2015目录,该目录是Qt编译后的安装目录。
3.在D盘新建D:\QtBuildScript目录,里面放置编译脚本qt-build.bat。为什么要新建一个目录来放置编译脚本,而不将编译脚本直接放置到源码源码目录D:\Src中?这里用到了影子编译(shadow build)的技巧,详见Qt5.7.0配置选项(configure options)。这样生成的Makefile文件和编译生成的中间文件都会在D:\QtBuildScript目录中。
编译脚本qt-build.bat如下所示:
脚本主要分为五部分,第一和第二部分是编译器的选择和对XP的支持,详见下面两个链接。
http://doc.qt.io/qt-5/windows-building.html
使用Qt5.7.0 VS2015版本生成兼容XP的可执行程序
第三部分可以不需要,因为之前已经将python和perl添加到path环境变量了。当然,保留第三部分也没什么问题。
第四部分设置Qt源码的环境变量。
第五部分是配置选项,详见Qt5.7.0配置选项(configure options),尤其注意-target xp。../src/configure.bat表示执行上一级目录里src文件夹中的configure.bat脚本,即D:\Src目录中的configure.bat脚本。那为什么不直接将configure.bat拷贝到D:\QtBuildScript目录中呢?因为configure.bat必须在源码目录中执行。
4.指定静态编译
在上面的编译选项中指定了静态编译(-static),但是这里的静态编译是指:使用编译完成并安装的Qt编写的应用程序(.exe),部署到XP或其他系统时,可以不必打包Qt库,但是依然需要VS2015运行时库。
如果想解除对VS2015运行时库的依赖,也就是说生成的应用程序(.exe)部署到XP或其他系统时,可以双击直接运行。还需要进行如下操作。
Qt支持的平台和编译器都在qtbase/mkspecs目录中,打开D:\Src\qtbase\mkspecs\win32-msvc2015中的qmake.conf配置文件,如下所示。
跳转到了上一级目录里common文件夹中的msvc-desktop.conf配置文件。
打开D:\Src\qtbase\mkspecs\common中的msvc-desktop.conf配置文件,如下所示。
将高亮的三行改为。
即MD(动态)改为MT(静态)。
五.编译
打开VS2015开发人员命令提示符。
执行脚本,开始配置。
几分钟后,提示输入nmake。输入nmake,然后回车,开始编译。
六.安装
大概三个小时左右(和机器配置有关),编译完成。输入nmake install,然后回车,开始安装。
七.使用
将刚才安装的Qt静态库添加到Qt Creator。
新建一个基于窗口的应用程序test,选择Qt静态库。
将生成的test.exe(不管是debug还是release)拷贝到XP裸机中,双击直接可以运行,如下图所示。
http://blog.csdn.net/caoshangpa/article/details/53738393
VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
原文:http://www.cnblogs.com/findumars/p/6254580.html