使用 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
部分。
所以我想通过使用 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
部分。