【问题标题】:How to build windows xp application using Visual studio command line + SCons?如何使用 Visual Studio 命令行 + SCons 构建 windows xp 应用程序?
【发布时间】:2018-09-03 14:56:44
【问题描述】:

使用 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)之间的小比较:

问题:如何在使用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 使用:/

【问题讨论】:

  • 这个问题实际上是关于 Nutika 如何使用 SCons(而不是专门关于 SCons)他们将创建 Environment() 并设置配置他们如何使用和配置编译器等。您可能必须设置 MSSDK_DIR 和/或 MSSDK_VERSION 才能获得适当的 SDK。另外(我相信)并非所有 SDK 版本都与所有 MSVC 版本兼容。所以请确保您安装了应该一起工作的版本。我认为 MSVC 2015 有一些安装 MSSDK 版本的选项?
  • @bdbaddog 这个article 很好地解释了xp 的整个向后兼容性。无论如何,这就是为什么我将所有这些不同的标签添加到问题中。如果有人能够解释如何在命令行上使用平台工具集,我们可以推断 SCons 使用它。我的直觉告诉我,也许该标志特定于msbuild 而不是cl & link,但我不知道......事情是,平台工具集a)修改PE头b)更改启动代码c)选择适当的SDK。

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


【解决方案1】:

经过大量挖掘,我发现了解更多有关平台工具集含义的最佳策略是手动比较此标志将如何影响 cl 和 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

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

另外,Executable/Include/Library/Exclude 目录将调整为使用 windows SDK 7。

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

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多