%(AdditionalIncludeDirectories)含义

时间:2013-10-10 02:04:05

标签: visual-c++ macros

认为这将是相当简单的但不知何故我找不到关于此的参考。

在MSVC Include目录中,有一个Additional Include Directories设置。设置如下所示

.. \ PROJECT1; %(AdditionalIncludeDirectories)

理解第一部分是程序搜索附加程序头包含的路径。那么“%(AdditionalIncludeDirectories)”怎么样?这是什么意思?

它似乎不是我所理解的以“$”为首的宏,例如$ MACRO

由于

2 个答案:

答案 0 :(得分:10)

答案

the documentation for Working with Project Properties中有一个关于“项目宏”的部分:

项目宏

语法%(name)。对于文件,项宏仅适用于该文件 - 例如,您可以使用%(AdditionalIncludeDirectories)来指定仅适用于特定文件的包含目录。这种项宏对应于MSBuild中的 ItemGroup 元数据。当它在项目配置的上下文中使用时,项宏将应用于特定类型的所有文件。例如,C / C ++ 预处理程序定义配置属性可以采用%(PreprocessorDefinitions)项宏,该宏适用于项目中的所有.cpp文件。这种项宏对应于MSBuild中的 ItemDefinitionGroup 元数据。有关详细信息,请参阅Item Definitions

讨论

我在一个前开发人员接管的项目中遇到了完全相同的问题:他的附加包含目录是C:\Users\t-tshmit\Downloads\DirectXTK;$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)

Additional Include Directories flyout

奇怪的是,%(AdditionalIncludeDirectories)元素未包含在编辑框中

Edit box for Additional Include Directories

浏览网页时我找不到多少内容,但它显然是一种正在使用的模式,例如http://www.steptools.com/support/stdev_docs/help/settings_vc10.html中使用的屏幕截图可能包含%(AdditionalIncludeDirectories)元素。

Additional Include Directories compiler optionsAdditionalIncludeDirectories VCCL Compiler Tool property的文档均未提及此%(NAME)模式。

答案 1 :(得分:0)

https://docs.microsoft.com/en-us/cpp/build/reference/common-macros-for-build-commands-and-properties?view=vs-2019

它们被称为“项目元数据宏”。

  

在Visual和Visual C ++之间,C ++的生成系统发生了重大变化   Studio 2008和Visual Studio2010。早期版本中使用的许多宏   项目类型已更改为新项目。这些宏不是   不再使用或已被一个或多个等效属性替代   或项目元数据宏(%(name))值。标记的宏   可以通过项目迁移工具来更新“已迁移”。如果   从Visual Studio 2008迁移包含宏的项目   在Visual Studio 2010的早期版本中,Visual Studio将该宏转换为   等效当前宏。更高版本的Visual Studio无法   将项目从Visual Studio 2008或更早版本转换为新版本   项目类型。您必须分两步转换这些项目。第一   将它们转换为Visual Studio 2010,然后将结果转换为   您的较新版本的Visual Studio。有关更多信息,请参见   潜在升级问题概述。