【问题标题】:What is "Platform Toolset" setting in visual studio project什么是 Visual Studio 项目中的“平台工具集”设置
【发布时间】:2014-12-17 03:02:21
【问题描述】:

我有三个疑问。有人帮忙吗?

  1. 什么是VS项目中的“Platform Toolset”项目设置
  2. 为什么需要这样的设置
  3. 如果我更改设置(v110 到 v100)会发生什么

【问题讨论】:

  • 它将用于编译代码的编译器版本从 v11.0 切换到 v10.0。 This Wikipedia article 列出了 VS 和 VC++ 编译器版本。
  • 它的编译器版本。这意味着您可以使用 VS2012,但如果您安装了 VS2010 的编译器,则可以使用它进行编译。您还可以使用“第 3 方”编译器,例如 llvm

标签: c++ visual-c++


【解决方案1】:

它是一个 MSBuild 属性,用于控制您要使用的平台工具集的特定版本。

更多信息在这里:http://msdn.microsoft.com/en-us/library/windows/hardware/hh454232%28v=vs.85%29.aspx

您很可能希望使用最新的稳定 Windows SDK。您可以检查您正在使用的工具集,查看您的 Visual Studio 项目文件 (.vcxproj),查找此 XML 条目:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"
      Label="Configuration">
  <ConfigurationType>Driver</ConfigurationType>
  <DriverType>KMDF</DriverType>
  <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
</PropertyGroup>

【讨论】:

  • 会影响编译后应用的向后兼容性吗?因此,如果您使用所有最新的 SDK/工具集进行编译,这是否意味着该应用程序将无法在旧版本的 Windows 上运行(或可能无法运行)?
【解决方案2】:

它是用于编译和链接项目的所有工具的版本。

【讨论】:

  • 所有工具是什么意思?
  • 主要是编译器和链接器。
  • 和 C++ 库
【解决方案3】:

更何况它是用于构建项目的工具链版本。因此,取决于您选择的版本,使用不同的编译器、链接器(等)版本。如果您选择随 VS2017 (v141) 发布的工具集版本,MSBuild 将使用此工具集中的工具来构建您的项目。

它在由 YoavKlein 提供的链接下得到了很好的描述。 “平台工具集由 C++ 编译器 (cl.exe) 和链接器 (link.exe) 以及 C/C++ 标准库组成。自 Visual Studio 2015 以来,工具集的主要版本保持在 14,这意味着使用 Visual Studio 2019 或 Visual Studio 2017 编译的项目与使用 Visual Studio 2015 编译的项目向后兼容 ABI。自 Visual Studio 2015 以来,每个版本的次要版本都更新了 1: 视觉工作室 2015:v140 视觉工作室 2017:v141 Visual Studio 2019:v142"

因此,如果主要版本相同,ABI 没有区别(但在您的情况下,您询问从 v110 到 v100 的更改,因此兼容性可能会被破坏),但可能会发生 f.e.旧版本工具集提供的编译器未实现新的或即将到来的 c++ 标准等的某些功能。

【讨论】:

    【解决方案4】:
    1. 在 Visual Studio 的解决方案资源管理器中,打开项目的快捷菜单(不是解决方案),然后选择“属性”以打开项目的“属性页”对话框。

    2. 在“属性页”对话框中,打开“配置”下拉列表,然后选择“所有配置”。

    3. 在对话框的左窗格中,展开配置属性,然后选择常规。

    4. 在右侧窗格中,选择平台工具集,然后从下拉列表中选择所需的工具集。例如,如果您已安装 Visual Studio 2010 工具集,请选择 Visual Studio 2010 (v100) 以将其用于您的项目。

    5. 选择确定按钮。

    【讨论】:

      【解决方案5】:

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 2012-12-23
      相关资源
      最近更新 更多