Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何查找有关包含的问题-可视化包含树_C++_C_Visual Studio_Include - Fatal编程技术网

C++ 如何查找有关包含的问题-可视化包含树

C++ 如何查找有关包含的问题-可视化包含树,c++,c,visual-studio,include,C++,C,Visual Studio,Include,场景 有时我会在系统头中发现编译器错误。目前,例如: c:\Program\Microsoft Visual Studio 9.0\VC\ce\include\streambuf(55):错误C2143:语法错误:缺少“)”在“字符串”之前 和往常一样,这是一条错误消息,当然我的代码中有一个问题。然而,编译器无法告诉我它的坏处。所以我在寻找通常的嫌疑犯,例如。 在某些头文件或类似文件中使用名称空间XXX 我的问题是,我甚至不知道streambuf文件是通过什么方式包含到我的代码中的。至少我没有直

场景

有时我会在系统头中发现编译器错误。目前,例如:

c:\Program\Microsoft Visual Studio 9.0\VC\ce\include\streambuf(55):错误C2143:语法错误:缺少“)”在“字符串”之前

和往常一样,这是一条错误消息,当然我的代码中有一个问题。然而,编译器无法告诉我它的坏处。所以我在寻找通常的嫌疑犯,例如。 在某些头文件或类似文件中使用名称空间XXX

我的问题是,我甚至不知道streambuf文件是通过什么方式包含到我的代码中的。至少我没有直接包括在内

具体问题

有没有办法得到某种“包含树”? 差不多

myClass.cpp
  + myClass.h
    + ios
      ...
      + streambuf
因此,我可以更好地确定错误位置。

我通常使用

cl /c /P /d1PP file.cpp
这将创建一个
文件.i
。这是预处理文件-它包含所有已处理的标题,即如果标题的特定部分位于ifdef something下&您尚未定义该内容,它将不包含该块。/d1PP(我认为是未文档化的)还显示了宏的实际定义位置。您还将看到谁在代码中包含了
streambuf
,以及在什么时候

然后我将
文件编译为

cl /c /Tp file.i (or cl /c /Tc file.i - if it's C and not C++)

要进行可视化,请尝试这个-

@JBentley:谢谢。这是一个重复的编译器开关正是我要找的。不幸的是,我在发布之前找不到这个问题…谢谢。我实际上是在寻找包含树的可视化。然而,你的方法将是分析结果来源的第二步。