【发布时间】:2014-04-24 20:30:39
【问题描述】:
我有两个平台工具集:v110 和 v110_xp 用于我的项目,根据选择的平台,我想包含/排除要编译的部分代码。
_MSC_FULL_VER 和 $(PlatformToolsetVersion) 对于这两个平台工具集具有完全相同的值。或者,我尝试使用$(PlatformToolset),如下所示:
_MSC_PLATFORM_TOOLSET=$(PlatformToolset)
但问题是$(PlatformToolset) 不是数字。想知道如何将这个非数字值用作预处理器指令?
尝试了几种解决方案我发现
_MSC_PLATFORM_TOOLSET='$(PlatformToolset)'
然后
#if (_MSC_PLATFORM_TOOLSET=='v110')
[Something]
#endif
工作正常,但是
#if(_MSC_PLATFORM_TOOLSET == 'v110_xp')
[SomethingElse]
#endif
导致“字符常量中的字符过多”错误。
有关上下文,请参阅此类似问题: Visual Studio: how to check used C++ platform toolset programmatically
【问题讨论】:
标签: c++ visual-studio-2012 preprocessor-directive project-properties