如何在C/C++中检测多余的 #includes?

10 浏览
0 Comments

如何在C/C++中检测多余的 #includes?

我常常发现文件头的部分越来越长,而且从来不会变小。在源文件的整个生命周期中,类可能会被移动和重构,有些#includes可能已经不再需要。将这些不必要的#includes留在那里只会延长编译时间和增加不必要的编译依赖。尝试弄清楚哪些还需要可能会非常繁琐。

有没有某种工具可以检测无用的#include指令并建议可以安全删除哪些呢?Lint会这样做吗?

admin 更改状态以发布 2023年5月20日
0
0 Comments

还可以查看include-what-you-use,该工具也解决了类似的问题。

0
0 Comments

Google的cppclean(链接到:下载文档)可以查找几个类别的C++问题,现在它可以找到多余的#includes。

还有一个基于Clang的工具,include-what-you-use,也可以做到这一点。include-what-you-use甚至可以建议前向声明(这样您就不必#include了那么多),并可选择为您清理您的#includes。

当前版本的Eclipse CDT也内置了此功能:转到“源”菜单,然后单击“组织包含”,即可按字母顺序排列您的#include,添加Eclipse认为您正在使用但未直接包含的任何标题,并注释掉它不认为您需要的任何标题。但是,此功能并不是100%可靠。

0