17

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

在 MSVC 包含目录中,有一个附加包含目录设置。设置是这样的

..\项目1;%(附加包含目录)

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

它似乎不是我理解的以“$”开头的宏,例如 $MACRO

谢谢

4

2 回答 2

12

回答

使用项目属性的文档中有一个关于“项目宏”的部分:

项目宏

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

讨论

在我从前开发人员那里接手的项目中,我遇到了完全相同的问题:他的附加包含目录是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 编译器选项AdditionalIncludeDirectories VCCL Compiler Tool 属性的文档均未提及此%(NAME)模式。

于 2013-10-24T08:03:44.027 回答
0

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

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

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

于 2019-07-24T19:28:19.197 回答