使用 Visual Studio 2015 IDE 构建 Windows XP 应用程序一点也不难,您只需要使用正确的平台工具集(v120_xp 或 v140_xp),并确保在目标计算机上安装正确的可再发行 Visual Studio 运行时 dll,非常简单豌豆。
现在,我一直在尝试弄清楚如何构建一个针对 Windows XP 的 Windows XP 应用程序,而不使用 VS GUI,而是使用VS2015命令行+SCons
所有 SCons 标志均已记录here https://scons.org/doc/HTML/scons-man.html但我没有看到任何可以让我更改平台工具集的东西。
如果您想知道平台工具集标志的真正含义是什么...经过一些研究,我已经能够弄清楚该标志的真正作用基本上是生成适合目标机器加载程序的不同 PE 标头,您可以看到以下 4 种不同情况(v120、v120_xp、v140、v140_xp)之间的比较:
Question: 使用时如何更改Visual Studio平台工具集visual studio command line
或使用时visual studio command line + SCons
?
编辑:我发现了这个使用 VS2010 的 msbuild 构建时可以从命令行设置平台工具集吗? https://stackoverflow.com/questions/11544563/can-i-set-the-platform-toolset-from-the-command-line-when-building-with-vs2010s但我不确定是否可以通过 SCons 使用它:/
经过大量挖掘后,我发现了了解更多有关平台工具集的最佳策略,即手动比较此标志将如何影响两者cl
and link
,我已经这样做了,这是我的发现:
v120_xp
-------
link: /SUBSYSTEM:CONSOLE",5.01"
cl: /D "_USING_V110_SDK71_"
v120
----
link: /SUBSYSTEM:CONSOLE
cl:
v140_xp
--------
link: /SUBSYSTEM:CONSOLE",5.01"
cl: /D "_USING_V110_SDK71_" /Zc:inline
v140
-------
link: /SUBSYSTEM:CONSOLE
cl: /Zc:inline
我提取了所有常见参数,只留下受平台工具集影响的相关参数。为了更多地了解整个主题,我建议您专门阅读有关/子系统 https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx来自官方文档的标志。
另外,Executable/Include/Library/Exclude
将调整目录以使用 Windows SDK 7。
剩下的事情就是将这些标志与 SCons 集成,这应该很容易,例如,您只需将这些标志添加到努伊特卡环境 https://github.com/kayhayen/Nuitka/blob/develop/nuitka/build/SingleExe.scons#L741-L749
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)