Why does Microsoft visual studio has different configuration properties for settings 'Windows SDK' and 'platform toolset' in same project? I have the understanding that every windows SDK provides new/different version of platform toolset. So how does it make sense to specify platform toolset of say Windows 10 SDK and at the same time setting the SDK option to say Windows 8.1 SDK in the same project?
Very confusing.
According to the Doc
For the Windows target platform,
Windows SDK Versionspecifies the version of the Windows SDK that your project requires.
Platform Toolsetallows the project to target a different version of the Visual C++ libraries and compiler. Visual Studio C++ projects can target either the default toolset installed by Visual Studio, or one of the toolsets installed by several previous versions of Visual Studio, including toolsets that create executables that can run on Windows XP.
"I have the understanding that every windows SDK provides new/different version of platform toolset"
There might be dependencies between the two for particular configurations; i.e. the Windows SDK (10.0.26100) will only build using the v143 toolset for ARM64 configurations. However there's no one to one relationship between the targeted SDK and the platform toolset so many different SDK versions will build with a single toolset version.
The platform toolset consists of the C++ compiler (cl.exe) and linker (link.exe), along with the C/C++ standard libraries. Platform Toolset is related to visual studio version. For example :
Visual Studio 2019: v142
Visual Studio 2022: v143
Windows SDK is related to targeted windows version. For example:
Windows SDK(10.0.18362.0): Windows 10, version 1903
Windows SDK(8.1): Windows 7 or Windows Vista

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With