Visual Studio 在编译时检测VisualStudio生成工具版本

gcxthw6b  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(135)

有没有一种方法可以使用预处理器标志或任何其他方法来获取Visual Studio正在使用的构建工具版本,以便代码/编译器可以在编译器时间决定如何编译代码?
在使用构建工具v140和v143时,头文件/代码有一些差异,但是为了保持它与两个版本的构建工具兼容,我想使用#ifdef或类似的东西封装一些代码,这样它就可以在不对代码进行任何更改的情况下使用任何版本进行构建,并保持向后兼容。

bis0qfac

bis0qfac1#

是,您可以将以下内容添加到预处理器定义中:
_MSC_PLATFORM_TOOLSET_$(PlatformToolset);
然后像这样使用它:
#ifdef _MSC_PLATFORM_TOOLSET_v140#if defined ( _MSC_PLATFORM_TOOLSET_v140 )
例如:

#if defined ( _MSC_PLATFORM_TOOLSET_v140 )
// Do something
#elif defined ( _MSC_PLATFORM_TOOLSET_v143 ) // VS2022 Toolset
// Do something else
#endif

相关问题