在Visual Studio项目中,“平台工具集”设置是什么?

30
我有三个疑问,有人可以帮忙吗?
  1. 什么是VS项目中的“平台工具集”设置?
  2. 为什么需要这种设置?
  3. 如果我更改了设置(从v110到v100),会发生什么?

3
它将切换编译您的代码所使用的编译器版本,从v11.0 到v10.0。这篇维基百科文章列出了VS和VC++编译器的版本。 - Praetorian
3
这句话的意思是编译器版本。它表示如果你安装了VS2010的编译器,你可以使用VS2012来编译。你也可以使用“第三方”编译器,比如llvm。请注意,翻译过程中内容不变,语言易懂即可。 - Borgleader
6个回答

6
这是一个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>

3
编译出的应用程序是否影响向后兼容性?如果使用最新的SDK/工具集进行编译,这是否意味着该应用程序无法在旧版本的Windows上运行(或可能无法运行)? - blitz_jones

6

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

因此,如果主要版本相同,则没有ABI差异(但在您的情况下,您询问从v110到v100的更改,因此可能会破坏兼容性),但可能会发生编译器提供旧版本工具集时无法实现新的或即将推出的c++标准等功能的情况。


次要版本似乎会在不同版本之间出现问题。试图从v140升级到v141 / 142 / 143,但无法成功。 :( - Phill

4

PlatformToolset和Visual Studio版本之间的映射关系如下:

  • Visual Studio 2012: v110
  • Visual Studio 2013: v120
  • Visual Studio 2015: v140
  • Visual Studio 2017: v141
  • Visual Studio 2019: v142
  • Visual Studio 2022: v143

(v130被跳过了)

引用自:


1

这是编译和链接您的项目所使用的所有工具版本。


2
你所说的所有工具是什么意思? - Nayana Adassuriya
3
主要是编译器和链接器。 - Nox
和C++库 - Justin
在这里稍微离题一下 - 但是像这样的“解决方案”真的不应该被发布。它们对任何人(尤其是提问者)都没有提供有价值的信息,只是陈述了显而易见的事实。这相当于在一个问题上只评论“已解决”,而不解释为什么。 - jabroni
如果你觉得这个翻译并不像我想象的那样有用,可以随意编辑并增加一些更详细的内容!这是很久以前的事情了 :) - Nox

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

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

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

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

  5. 选择“确定”按钮。


1

2
嗨,YoavKlein,你能把链接中相关的部分包含进解释里吗?[带有链接的回答通常不被认为是好的回答] (https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers)。 - Brydenr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接