【问题标题】:C/C++: Removing unnecessary includes [duplicate]C / C ++:删除不必要的包含[重复]
【发布时间】: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。我查看了两个编译器的文档,似乎没有一个选项可以让它警告不必要的包含。

感谢任何想法或建议。

【问题讨论】:

    标签: c++ c header-files


    【解决方案1】:

    我不得不这样做一次,我最终这样做了:

    1. 我从我的 haeder 和源文件中删除了几乎所有 #include 语句
    2. 我试图编译我的源代码
    3. 每当编译器抱怨未定义的东西时,我要么:

      • 尽可能添加最小声明而不是包含标题(例如:“class SomeClass;”而不是 `#include “someclass.hpp”)
      • 在别无选择时添加了所需的包含。
    4. 转到2.直到成功。

    我承认这很长而且很无聊,但值得。

    【讨论】:

    • 问题是有超过 5000 个源文件和总共 22 个项目。因为各个项目之间有很多通用代码,所以每次我需要测试更改时,我都必须重新构建每个项目。在这一点上,甚至不是工时,而是等待 1.5 小时来编译它们并重试。我担心这最终会发生,但我希望有一个更简单、自动化的解决方案。
    猜你喜欢
    • 2018-11-08
    • 2019-05-07
    • 1970-01-01
    • 2020-09-27
    • 2012-07-03
    • 1970-01-01
    • 2010-09-13
    • 2011-12-01
    • 2022-01-05
    相关资源
    最近更新 更多