检测 C/C 中多余的#includes?

新手上路,请多包涵

我经常发现文件的标题部分一直在变大,但它永远不会变小。在源文件的整个生命周期中,类可能已经移动并被重构,并且很有可能有很多 #includes 不再需要在那里了。将它们留在那里只会延长编译时间并添加不必要的编译依赖项。试图找出仍然需要哪些可能是相当乏味的。

是否有某种工具可以检测多余的#include 指令并建议我可以安全删除哪些指令?

lint 可能会这样做吗?

原文由 shoosh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

这不是自动的,但 doxygen 会为 #included 文件生成依赖关系图。您将不得不直观地浏览它们,但它们对于了解什么使用什么非常有用。

原文由 anon 发布,翻译遵循 CC BY-SA 4.0 许可协议

clangd 现在 正在为你做这件事。可能 clang-tidy 很快也能做到这一点。

原文由 Slava 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题