QT5.8 VS2015生成兼容xp系统的可执行程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZuoYueXian/article/details/71305638

目录(?)[+]


一、简介

        Visual Studio刚发布时没打补丁,称为RTM版,之后会陆续发布补丁,进行bug修复和功能增强。VS2010及之前版本的补丁为Service Pack,VS2012及之后版本的补丁称为Update。这些补丁都是向下兼容的,比如说打了Update2补丁,就不需要再打Update1补丁了。

微软官网上现在只能搜索到VS2010 Service Pack1https://www.microsoft.com/zh-cn/download/details.aspx?id=23691,从该补丁的系统要求可以看出VS2010支持XP、Vista和Win7,但是不支持Win8和Win10。因此用VS2010生成的可执行程序能直接在XP上运行。


再来搜索一下VS2012,这里以旗舰版https://www.microsoft.com/zh-cn/download/details.aspx?id=30678为例,从它的系统要求可以看出VS2012支持Win7和Win8,但是不支持XP和Win10。


VS2013、VS2015和VS2017的系统要求信息这里https://www.visualstudio.com/zh-cn/productinfo/vs-servicing-vs统一展示了出来,不用再去搜索了。VS2013也只支持Win7和Win8。从VS2015开始新增加了对Win10的支持。为防止网页失效,还是截个图吧。


也就是说理论上从VS2012开始,生成的可执行文件就不能再XP上运行了。但是由于XP用户量依然很大,微软在发布了VS2012 RTM没多久,就紧接着发布了Update1补丁,该补丁重要的改进有两处,一是在平台工具集里添加了支持生成运行于XP的选项;二是添加了对C++11特性的支持。

如何查看Visual Studio是否打了补丁,方法很简单,点击菜单“帮助”——>“关于 Microsoft Visual Studio”,如下图所示,从图中可以看出我的VS2012是打过Update1补丁的。



二、详解

1、利用VS2015直接编译生成兼容XP系统的程序

新建一个基于Widget的程序,然后进行如下设置

注意“所需最低版本”一定要设置为5.01,如果设置为5.0会提示错误“LNK4010:子系统版本号5.0无效。

2、利用QT Creator直接编译生成兼容XP系统的程序

使用Qt Creator新建一个基于窗口的工程,然后在pro中加入:

win32 {
    QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01
    QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE,5.01

    DEFINES += _ATL_XP_TARGETING
    QMAKE_CFLAGS += /D_USING_V140_SDK71_
    QMAKE_CXXFLAGS += /D_USING_V140_SDK71_
    LIBS += -L$$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib)
    INCLUDEPATH += $$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include)
    }


但是实测时,只需在pro中加入QMAKE_LFLAGS_WINDOWS=/SUBSYSTEM:WINDOWS,5.01(如果程序基于窗口),其他的条件估计是默认设置的。

这些条件还比较好理解的,与直接使用VS时的设置相对应。SDK71就是兼容XP的库,LIBS和INCLUDEPATH给出了其路径,V140是VC的版本,即VS2015。

但是程序还是不能够运行

Qt5.8安装包不是静态编译的,且编译时没有指定兼容XP,所以会依赖VS2015运行时库。此时需要安装VS2015的vcredist_x86.exe,vcredist_x86.exe如何获取可参考: Qt查找依赖库的简单方法 

将获取的vcredist_x86.exe拷贝到XP中安装即可,安装界面如下图所示。

成功运行


三、总结

(1)通过上述步骤成功编译出了能够运行在XP系统上的程序。

(2)若有建议,请留言,在此先感谢!

(3)QT 个人学习网站  https://www.qijiabo.cn   欢迎大家一起学习交流



阅读更多
换一批

没有更多推荐了,返回首页