在MSVC中,任何方式都可以查看错误中的所有#include文件

时间:2010-11-22 17:52:45

标签: visual-c++

假设我们'foo.cpp'包含'bar.h'包括'baz.h'包含'grog.h','grog.h'中有错误。 GCC将生成一条消息,上面写着“文件grog.h中的错误,包含在baz.h:10中,包含在bar.h:5中,包含在foo.cpp:20中。”

有没有办法让MSVC产生类似的消息?有时你只需要知道文件本身,但追逐#include链并不是非常罕见。

(您可以在短时间内打开/ showIncludes选项并查看其中包含的内容,但这会产生大量输出,并且在修复错误后继续保持此功能并不合理。)

2 个答案:

答案 0 :(得分:0)

除非其他人提供更优雅的解决方案,否则您可以编写一个分析器来解析您的输出文件,并将/ showIncludes打开为更易读的内容。

答案 1 :(得分:0)

Visual C ++在其更高版本中实际上可以很好地在错误需要时包含上下文信息 - 模板错误指向包含链回到实际导致的您的代码行boost/horrifically_complex_mpl_code.hpp中的编译器错误,关于模糊重载的警告显示所有可能的候选者,等等。

我不知道有什么方法可以做到你想要的。您可以使用/P生成完整的预处理源输出,但这不像您描述的功能那样方便单拍。