c++ - 如何高效获取 MSVC2013 中的所有包含路径

标签 c++ visual-c++ visual-studio-2013 msbuild

我很想使用 include-what-you-use 来重构我的代码,但我需要弄清楚 VS 正在寻找哪些目录。

如何获得项目中文件可见的所有包含路径的列表?

如果我添加了不正确的包含,比如“#include”,我得到了我想要的列表,但我不能复制和粘贴该死的东西! (而且 OCR 似乎不起作用)。

如何获取此列表?

enter image description here

最佳答案

如果您想手动执行一次,则可以从对话框中复制/粘贴,但不能很好地缩放。由于您标记了这个 msbuild,这里有一个使用它的解决方案。创建文件名 showincludes.targets 并粘贴此 msbuild 代码:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="ShowIncludes">
    <Message Text="$(Include);%(ClCompile.AdditionalIncludeDirectories)"/>
  </Target>
</Project>

现在获取任何项目文件使用的包含列表

msbuild \path\to\vcxproj /p:ForceImportAfterCppTargets=\path\to\showincludes.targets /t:ShowIncludes

这会将所述文件导入项目 give,因此它可以访问所有属性,并打印出编译器默认使用的 INCLUDE 环境变量的值,以及传递给的 AdditionalIncludeDirectories 的值msbuild 的编译器。

关于c++ - 如何高效获取 MSVC2013 中的所有包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978600/

相关文章:

c# - 在 C++ 中执行 C# LINQ Where/Select 的正确方法是什么?

c++ - VS2013 Unresolved External with 构造函数和析构函数

visual-studio - PostgreSQL .sql文件的Visual Studio配置

c++ - Visual Studio 2013 SDKDDKVer.h 及相关错误

c++ - 在 Visual Studio 中链接 DLL

c++ - std::promise<T> 其中 T 在 Visual Studio 2017 中必须是默认可构造的?

debugging - "One or more breakpoints cannot be set and have been disabled. Execution will stop at the beginning of the program."

c - InterlockedExchange() 类型函数/内部函数的 MSDN 文档不一致?

c++ - 显示不在模态模式下的对话框

c# - 抑制处理器不匹配警告