首页 > C/C++ > VS2017 静态编译Qt5.9.2/VS2015静态编译Qt5.6.3(支持XP)
2017
11-09

VS2017 静态编译Qt5.9.2/VS2015静态编译Qt5.6.3(支持XP)

VS2017 静态编译 Qt5.9.2

 

1、安装编译环境

a ) 下载并安装工具 perl\python, 在编译的过程中需要使用

  • Perl version 5.12 or later,下载
  • Python version 2.7 or later,下载
  • Qt 5.9.2 版本 下载
  • Qt 5.6.3 版本 下载

b )  编辑并添加以下内容到系统变量Path的最后

;C:\Perl\site\bin;C:\Perl\bin;C:\Python27

c )  Qt 5.9.2 或 Qt 5.6.3 安装的时候把源码勾选上,文章中Qt的默认安装位置是E盘。

 

2、Qt 5.9.2 VS2017 静态编译

a ) 在E:\Qt\Qt5.9.2\5.9.2\Src 路径下添加批处理文件 qt592-vs2017-build.bat (路径:E:\Qt\Qt5.9.2\5.9.2\Src\qt592-vs2017-build.bat)

内容如下:

REM ********** Initialize env for msvc 2017 cl compiler **********
SET PATH=C:\Windows;C:\Windows\system32
REM Set up \Microsoft Visual Studio 2017, where <arch> is amd64, x86, etc.
CALL "E:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars32.bat"

REM ********** 3rd party build tools binaries: perl, python ********** 
SET PATH=C:\Perl\bin;C:\Python27;%PATH%

REM ********** Set up qt source env **********
SET _ROOT=E:\Qt\Qt5.9.2\5.9.2\Src
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
REM SET QMAKESPEC=win32-msvc
SET _ROOT=

REM Generate makefile
./configure.bat -confirm-license -opensource -platform win32-msvc -debug-and-release -force-debug-info -static -prefix "E:\Qt\Qt5.9.2\5.9.2\msvc2017_32_static" -sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -mp

b ) 打开cmd 切换到E盘的 E:\Qt\Qt5.9.2\5.9.2\Src 目录 然后运行以下命令

E:\Qt\Qt5.9.2\5.9.2\Src>call qt592-vs2017-build.bat

c ) 修改 文件 E:\Qt\Qt5.9.2\5.9.2\Src\qtbase\mkspecs\common\msvc-desktop.conf

找到以下内容

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

把MD 修改为MT

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MT -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

 

d ) 切换到 b步骤 的 cmd 命令行中输入

nmake && nmake install && nmake clean

编译完成打开 E:\Qt\Qt5.9.2\5.9.2\msvc2017_32_static 目录即可看到编译生成的静态库。

e ) 打开Qt 5.9.2  版本的 Qt Creator,找到 “工具-选项-构建和运行-Qt Versions” 选项 添加

E:\Qt\Qt5.9.2\5.9.2\msvc2017_32_static\bin\qmake.exe 路径

然后找到 “工具-选项-构建和运行-构建套件( Kit )” 选项 设置如下图

 

VS2015静态编译Qt5.6.3 (同上)

 

编译脚本文件 E:\Qt\Qt5.6.3\5.6.3\Src\qt563-vs2015-build.bat

REM ********** Initialize env for msvc 2015 cl compiler **********
SET PATH=C:\Windows;C:\Windows\system32
REM Set up \Microsoft Visual Studio 2015, where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86

REM ********** Update include & lib to support xp win sdk 7.1A **********
SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%
SET LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;%LIB%
SET CL=/D_USING_V140_SDK71_;%CL%

REM ********** 3rd party build tools binaries: ruby, perl, python ********** 
SET PATH=C:\Perl\bin;C:\Python27;%PATH%

REM ********** Set up qt source env **********
SET _ROOT=D:\Src
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET QMAKESPEC=win32-msvc2015
SET _ROOT=

REM Generate makefile
./configure.bat -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -target xp -prefix "E:\Qt\Qt5.6.3\5.6.3\msvc2015_static" 

-qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -

nomake tests -nomake examples -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -mp

 

参考文献

http://blog.csdn.net/caoshangpa/article/details/53738393

http://blog.csdn.net/qazxdrcssc2006/article/details/73497226 (如需支持ICU,OpenSSL 参考此文)

 

最后编辑:
作者:dnybz
这个作者貌似有点懒,什么都没有留下。