QT5静态编译源码使发布程序不依赖于dll且能运行于windowsXP系统

本文介绍了如何在Win10环境下静态编译QT5.6.3以使其在Windows XP系统上运行,包括下载源码、安装Python、Ruby、Perl和VS2015 Update3,以及编译过程中的关键步骤和配置修改,强调了避免空格和选择正确版本的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要想实现标题的目的,qt5.7及其之后的版本——别试了。网上有5.7的方法,可是5.7不是LTS(长期技术支持版)啊。

5.6到2017年底还在出改进版5.6.3,而5.7就销声匿迹了啊。

我尝试5.9这个同5.6一样的长期版,静态编译倒是可以,放xp里运行不了了。qt自己也说5.7之后就不支持xp了。

【我是win10x64的虚拟机】

1.去QT官网或者镜像网站下载everything。比如说北京理工的http://mirror.bit.edu.cn/qtproject/official_releases/qt/5.6/5.6.3/single/

2.装python2.7.*  我装的是当时官网的2.7.13 

3.装ruby 我装的是ruby 1.9.2p0 (2010-08-18) [i386-mingw32]

4.装perl 我装的是http://www.perl.org/上的5.24.3

上述软件安装时会有英文提示问你是否加入环境变量等等,注意观察。勾选加入!

装VS2015 update3  切记是update3!很大的一个安装包,7G多的一个ISO。(VS2017貌似就不理睬x86了,专心x64了。)

还要装一个windows software development Kit的东西,这是一个全家桶,不必都装,光装里面那个什么SDK就行。

5.6.3静态编译方法

1.建个QtStatic目录,其下再建立三个子目录BuildScript、src、vs2015static

(BuildScript用来存放安装脚本和编译中间文件;src用来存everything解压出来的源码;另一个目录就是存最终成果了。mingw编译器神慢,在win下还是用ms的vs自带的编译器cl吧。)

2.在BuildScript目录下建立qt-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_V110_SDK71_;%CL%

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

REM ********** Set up qt source env **********
SET _ROOT=C:\QtStatic\Qt5.6.3\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
../src/configure.bat -confirm-license -opensource -platform win32-msvc2015 -release -static -target xp -prefix C:\QtStatic\Qt5.6.3\vs2015static -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-oci -plugin-sql-mysql -qt-zlib -qt-pcre -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 -no-directwrite -mp 

 上文中涉及路径的你仔细调整,设置成你自己机器的真实情况。我需要连接oracle和mysql数据库,你视情况自行增删最后一段相关开关。最后一段这里,qt5.6和5.9关于数据库这块很是不同,其他细节也有差异。

3.修改C:\QtStatic\Qt5.6.3\src\qtbase\mkspecs\common\msvc-desktop.conf如下:

#
# qmake configuration for Microsoft Visual Studio C/C++ Compiler
# This mkspec is used for all win32-msvcXXXX specs
#

isEmpty(MSC_VER)|isEmpty(MSVC_VER): error("Source mkspec must set both MSC_VER and MSVC_VER.")

#
# Baseline: Visual Studio 2005 (8.0), VC++ 14.0
#

include(angle.conf)

MAKEFILE_GENERATOR      = MSVC.NET
QMAKE_PLATFORM          = win32
QMAKE_COMPILER          = msvc
CONFIG                 += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
DEFINES                += UNICODE WIN32
QMAKE_COMPILER_DEFINES += _MSC_VER=$$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值