"%(AdditionalIncludeDirectories)"的含义是什么?

17
我认为这会非常简单,但是不知何故我找不到有关此事的参考资料。
在 MSVC 的 include 目录中,有一个“Additional Include Directories”的设置。该设置如下:
..\Project1; %(AdditionalIncludeDirectories)
我理解第一部分是程序搜索其他头文件包含路径的路径。那么 “%(AdditionalIncludeDirectories)” 是什么意思呢?
它似乎不是我所理解的以“$”开头的宏。
谢谢。
2个回答

12

答案

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

项宏

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

讨论

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

附加包含目录 flyout

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

附加包含目录编辑框

我在网上搜寻了很多,但却没有找到太多相关的内容,但显然这是一个经常使用的模式,例如此处截图中出现了%(AdditionalIncludeDirectories)元素。

附加包含目录编译器选项AdditionalIncludeDirectories VCCL Compiler Tool属性的文档中都没有提到%(NAME)模式。


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

1

https://learn.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。有关更多信息,请参见可能升级问题的概述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接