什么是视觉工作室项目中"Platform Toolset"设置

What is "Platform Toolset" setting in visual studio project

本文关键字:Platform Toolset 设置 项目 视觉 工作室 什么      更新时间:2023-10-16

我有三个疑问。有人在那里寻求帮助吗?

  1. VS项目中的"平台工具集"项目设置是什么
  2. 为什么需要这样的设置
  3. 如果我更改设置(v110 到 v100(,会发生什么情况

它是一个 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>

此外,它是用于构建项目的工具链版本。因此,根据您选择的版本,使用不同的编译器、链接器(等(版本。如果选择随 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:Visual Studio 2015: v140Visual Studio 2017: v141Visual Studio 2019: v142">

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

PlatformToolset 和 Visual Studio 版本之间的映射如下所示

  • Visual Studio 2012: v110
  • Visual Studio 2013: v120
  • Visual Studio 2015: v140
  • Visual Studio 2017: v141
  • Visual Studio 2019: v142
  • 视觉工作室 2022:v143

(跳过 v130(

取自

  • https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/platform-toolset
  • https://learn.microsoft.com/en-us/cpp/build/how-to-modify-the-target-framework-and-platform-toolset?view=msvc-170
  • https://marcofoco.com/blog/2015/02/25/microsoft-visual-c-version-map/

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

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

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

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

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

  5. 选择"确定"按钮。

我会参考这个链接,我认为那里解释得更好:https://learn.microsoft.com/en-us/cpp/build/how-to-modify-the-target-framework-and-platform-toolset?view=vs-2019