使用VS宏设置PreprocessorDefinitions

时间:2015-02-04 17:07:02

标签: c++ visual-studio-2012 macros msbuild

所以我想通过使用像这样的Visual Studio宏来设置预处理器定义:

<PreprocessorDefinitions>$(ProjectName)_DEFINE</PreprocessorDefinitions>

所以我可以在src文件中使用它:

#ifdef MyProjectName_DEFINE
#define helloWorld
#endif

请帮助我。我在网上找不到任何东西,除了带有/ D参数的东西,所以我试过:/ D $(ProjectName)_EXPORT但它仍然无法工作:(

谢谢!

1 个答案:

答案 0 :(得分:1)

设置PreprocessorDefinitions和使用/D选项都可以正常工作,但很难说出为什么他们不适合您的情况。可能您正在为不同的构建配置设置选项而不是您正在使用的选项,或者您在某处有拼写错误。

例如:右键单击VS中的项目,选择正确的配置平台,然后转到属性 - &gt; C / C ++ - &gt;预处理器并输入

%(PreProcessorDefinitions);$(ProjectName)_DEFINED

作为预处理程序定义

的值

现在,如果您的项目名为 MyProject ,则将定义预处理器符号MyProject_DEFINED。请注意%(PreProcessorDefinitions)的使用,以确保继承构建过程中早期设置的定义。 如果在文本编辑器中打开项目,它将如下所示(此处显示Debug | Win32版本的部分):

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  <ClCompile>
    <PreProcessorDefinitions>%(PreProcessorDefinitions);$(ProjectName)_DEFINED</PreProcessorDefinitions>
  </ClCompile>
</ItemDefinitionGroup>

如果您需要每个平台/配置的定义,请复制/粘贴上面的内容并删除Condition部分。