Nayana Adassuriya
Nayana Adassuriya

Reputation: 24766

What is "Platform Toolset" setting in visual studio project

I have three doubts. Anyone there for help?

  1. What is the "Platform Toolset" project setting in VS project
  2. Why such setting required
  3. What happen, if I change the setting (v110 to v100)

Upvotes: 34

Views: 54577

Answers (6)

YoavKlein
YoavKlein

Reputation: 2703

As explained in this page

The platform toolset consists of the C++ compiler (cl.exe) and linker (link.exe), along with the C/C++ standard libraries.

Upvotes: 1

user7610
user7610

Reputation: 28811

The mapping between PlatformToolset and Visual Studio versions is as follows

  • 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 was skipped)

Taken from

Upvotes: 5

user1770426
user1770426

Reputation: 193

Moreless it is a version of toolchain that is used to build your project. So depends on version you have selected, different compiler, linker (etc) versions are used. If you select toolset version that was released with VS2017 (v141), MSBuild will use tools from this toolset do build your project.

It is nicely described under link provided by: YoavKlein. "The platform toolset consists of the C++ compiler (cl.exe) and linker (link.exe), along with the C/C++ standard libraries. Since Visual Studio 2015, the major version of the toolset has remained at 14, which means that projects compiled with Visual Studio 2019 or Visual Studio 2017 are ABI-backwards-compatible with projects compiled with Visual Studio 2015. The minor version has updated by 1 for each version since Visual Studio 2015: Visual Studio 2015: v140 Visual Studio 2017: v141 Visual Studio 2019: v142"

So there is no difference in ABI if the major version is same (but in your case you ask about change from v110 to v100 so the compatibility may be broken), but it may happen that f.e. compiler provided with older version of toolset does not implement some features of the new or incomming c++ standard etc.

Upvotes: 6

Cypress
Cypress

Reputation: 55

  1. In Visual Studio, in Solution Explorer, open the shortcut menu for your project (not for your solution) and then choose Properties to open your project Property Pages dialog box.

  2. In the Property Pages dialog box, open the Configuration drop-down list and then select All Configurations.

  3. In the left pane of the dialog box, expand Configuration Properties and then select General.

  4. In the right pane, select Platform Toolset and then select the toolset you want from the drop-down list. For example, if you have installed the Visual Studio 2010 toolset, select Visual Studio 2010 (v100) to use it for your project.

  5. Choose the OK button.

Upvotes: 1

gmas80
gmas80

Reputation: 1268

It is an MSBuild property that controls the specific version of the platform toolset that you want to use.

More info here: http://msdn.microsoft.com/en-us/library/windows/hardware/hh454232%28v=vs.85%29.aspx

Most likely you want to use the last stable Windows SDK. You can check the toolset that you are using looking at your Visual Studio project file (.vcxproj), looking for this XML entry:

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

Upvotes: 6

Nox
Nox

Reputation: 932

It is the version of all the tools used to compile and link your project.

Upvotes: 1

Related Questions