认为这将是相当简单的但不知何故我找不到关于此的参考。
在MSVC Include目录中,有一个Additional Include Directories设置。设置如下所示
.. \ PROJECT1; %(AdditionalIncludeDirectories)
理解第一部分是程序搜索附加程序头包含的路径。那么“%(AdditionalIncludeDirectories)”怎么样?这是什么意思?
它似乎不是我所理解的以“$”为首的宏,例如$ MACRO
由于
答案 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)
奇怪的是,%(AdditionalIncludeDirectories)
元素未包含在编辑框中
浏览网页时我找不到多少内容,但它显然是一种正在使用的模式,例如http://www.steptools.com/support/stdev_docs/help/settings_vc10.html中使用的屏幕截图可能包含%(AdditionalIncludeDirectories)
元素。
Additional Include Directories compiler options和AdditionalIncludeDirectories VCCL Compiler Tool property的文档均未提及此%(NAME)
模式。
答案 1 :(得分:0)
它们被称为“项目元数据宏”。
在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。有关更多信息,请参见 潜在升级问题概述。