C / C ++:删除不必要的包含[重复]
Posted
技术标签:
【中文标题】C / C ++:删除不必要的包含[重复]【英文标题】:C/C++: Removing unnecessary includes [duplicate] 【发布时间】:2011-03-10 03:54:30 【问题描述】:可能的重复:C/C++: Detecting superfluous #includes?How should I detect unnecessary #include files in a large C++ project?
我希望在我们的代码库中进行一些房屋清洁工作。我想首先从我们的源文件(*.c 和 *.cpp)中删除所有不必要的头文件。有谁知道这样做的工具或技术?
我们在 Mac、Linux 和 Solaris 上使用 GCC。在 Windows 上使用 Visual Studio。我查看了两个编译器的文档,似乎没有一个选项可以让它警告不必要的包含。
感谢任何想法或建议。
【问题讨论】:
【参考方案1】:我不得不这样做一次,我最终这样做了:
-
我从我的 haeder 和源文件中删除了几乎所有
#include
语句
我试图编译我的源代码
每当编译器抱怨未定义的东西时,我要么:
尽可能添加最小声明而不是包含标题(例如:“class SomeClass;”而不是 `#include “someclass.hpp”) 在别无选择时添加了所需的包含。转到2.直到成功。
我承认这很长而且很无聊,但值得。
【讨论】:
问题是有超过 5000 个源文件和总共 22 个项目。因为各个项目之间有很多通用代码,所以每次我需要测试更改时,我都必须重新构建每个项目。在这一点上,甚至不是工时,而是等待 1.5 小时来编译它们并重试。我担心这最终会发生,但我希望有一个更简单、自动化的解决方案。以上是关于C / C ++:删除不必要的包含[重复]的主要内容,如果未能解决你的问题,请参考以下文章