如何使用Visual Studio命令行+ SCons构建Windows XP应用程序?

时间:2018-09-03 14:56:44

标签: visual-studio visual-studio-2015 scons portable-executable nuitka

使用Visual Studio 2015 IDE构建Windows XP应用程序并不难,您只需要使用正确的平台工具集(v120_xp或v140_xp),并确保在目标上安装了正确的可再发行Visual Studio运行时dll即可。机器,轻松自如。

现在,我一直在尝试找出如何在不使用VS GUI而是使用 VS2015命令行+ SCons

的情况下构建针对Windows XP的Windows XP应用程序的方法

所有SCons标志都已置为here,但我看不到任何允许我更改平台工具集的东西。

如果您想知道平台工具集标记的真正含义是什么……经过一些研究,我已经弄清楚该标记的真正作用是基本上产生适合目标机器加载程序的不同PE头,可以看到下面4种不同情况(v120,v120_xp,v140,v140_xp)之间的一些比较:

enter image description here

问题:使用visual studio command line或使用visual studio command line + SCons时如何更改Visual Studio平台工具集?

编辑:我找到了这个Can I set the platform toolset from the command line when building with VS2010's msbuild?,但不确定是否可以通过SCons使用它:/

1 个答案:

答案 0 :(得分:2)

经过大量的挖掘,我找到了最好的策略,以了解有关平台工具集的更多信息,即手动比较此标志将如何影响cllink,我已经完成了那是我的发现:

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

我已经提取了所有通用参数,只留下了受平台工具集影响的相关参数。为了进一步了解整个主题,建议您特别阅读官方文档中的/SUBSYSTEM标志。

此外,Executable/Include/Library/Exclude目录将被调整为使用Windows SDK 7。

剩下的就是将这些标志与SCons集成在一起,这应该很容易,例如,您只需要将这些标志添加到nuitka environment