使用 VS 宏设置 PreprocessorDefinitions

Using a VS Macro for setting PreprocessorDefinitions

所以我想通过使用 Visual Studio 宏来设置处理器定义,如下所示:

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

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

#ifdef MyProjectName_DEFINE
#define helloWorld
#endif

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

谢谢!

设置 PreprocessorDefinitions 和使用 /D 选项都应该可以正常工作,但很难说出为什么它们不适合您的情况。可能您正在为与您正在使用的构建配置不同的构建配置设置选项,或者您在某处输入错误。

例如:在VS中右击一个项目,select正确配置平台然后进入Properties->C/C++->Preprocessor 然后输入

%(PreProcessorDefinitions);$(ProjectName)_DEFINED

作为 预处理器定义的值

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

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

如果您需要每个 platform/configuration 的定义,copy/paste 以上内容并删除 Condition 部分。