0

我目前正在尝试将夹板作为 Visual Studio 2010 中的外部工具提供。

查找文件的所有包含时存在问题,因为似乎 INCLUDE 变量仅在构建时设置,并且我还没有找到任何其他可能性以任何方式提取包含文件。

我的问题:有什么方法可以从当前文件的项目属性页面中提取 IncludeDir 字段,最好是使用 VC++ 的 AdditionalIncludeDirectories?

4

1 回答 1

1

另请注意,AdditionalIncludeDirectories 是每个文件的,因为它可以针对单个源文件以及项目级别进行更改,如果它包含宏,它也可以对每个源文件进行不同的评估!

我不熟悉通过 API 驱动 MSBuild 对象,但这是 IDE 使用的。无论是这种方式还是简单地运行 MSBuild.exe,您都需要让它找出所有属性、条件等,然后告诉您结果。如果一切正常,您可以创建一个目标,该目标也使用 ClCompile 项目数组并%(AdditionalIncludeDirectories)以某种方式发出元数据,例如将其写入文件或以某种方式将其传递给您的其他工具。这就是用于生成/ICL 参数的方法,您可以获得相同的值。

如果在详细的构建过程中更改了必要的值时表现不佳,那么您也需要像 ClCompile 目标通常那样完成相同的 prelims。或者只是用您自己的(使用目标的最后定义)覆盖 ClCompile,所以它肯定在相同的上下文中。

无论哪种方式,都有一些地方可以将构建脚本文件自动包含到所有项目中,因此您可以在那里添加您的东西或使用命令参数(我认为)到 MSBuild 来添加另一个包含。

-约翰

于 2014-09-18T17:42:20.820 回答