在 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 复制并粘贴到您最喜欢的编辑器中,然后搜索您感兴趣的特定头文件。
我们正在将我们的代码转换为使用日志记录库而不是 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 复制并粘贴到您最喜欢的编辑器中,然后搜索您感兴趣的特定头文件。