在 Visual Studio 中查找哪个文件包含 iostream

Finding which file includes iostream in Visual Studio

我们正在将我们的代码转换为使用日志记录库而不是 std::cout,并且作为其中的一部分,我们只是从每个源文件中删除 #include <iostream>。这 应该 允许我们轻松识别仍在使用 cout 的行(因为它们会有编译错误)并快速修复它们。

然而,即使删除了 #include,许多文件仍然有效,这意味着它使用的其他一些 header 可能包括它。由于我们在一个相当大的层次结构中有很多 many headers,有没有办法让 Visual Studio 实际告诉我们哪个 header 文件包括 iostream 及其在层次结构中的位置。

我知道我可以简单地搜索其中的很多内容,但我只对那些实际购买到 特定 源文件中的内容感兴趣。因为我们是一点一点地做的,一次性把每个文件改完是行不通的。

到目前为止,我一直将 #define cout JUNK 放在文件的顶部,以便在使用 cout 进行输出时导致错误,但我想从文件中删除所有 iostream 内容如果可能,文件。

如果右键单击 Solution Explorer 和 select Properties 中的文件,Advanced 选项卡有一个 Show Includes 选项:

设置为yes会导致编译器输出包含文件的整个层次结构,如:

1> FileA.cpp
1> Note: including file: d:\repo\FileA.h
1> Note: including file:  d:\repo\SomeOtherHeader.h
1> Note: including file: d:\repo\FileB.h
1> Note: including file:  d:\repo\YetAntherHeader.h
1> Note: including file:   C:\ProgFiles_x86\MSVS14\VC\include\iostream

您只需将其从输出 window 复制并粘贴到您最喜欢的编辑器中,然后搜索您感兴趣的特定头文件。