我正在寻找一个工具来帮助检测大型c ++代码库中不必要的头包含。关于这个主题的其他stackoverflow问题都建议cppclean。所以我已经安装了cppclean并且我正在尝试使用它,但即使在非常简单的错误示例上它也没有给出任何结果。
例如,这就是我想要清理的东西。源文件:
// foo.cpp
#include "bar.h"
void main() { };
和头文件:
// bar.h
class bar {
};
我跑:
cppclean foo.cpp
但它什么都不打印,返回0。
难道我做错了什么?有关如何使用此工具的任何教程吗?
在你的cpp和头文件所在的工作目录中运行cppclean .
。您需要向Cppclean提供所有源代码,以便它可以解析它们并查找问题。
要包含多个目录,请参阅Run section of Cppclean's documentation。
The cppclean documentation明确指出,就在首页的“功能”下:
- 查找并打印C ++语言结构:类,方法,函数等。
- 使用虚方法查找类,没有虚拟析构函数,也没有基础
- 查找使用线程时可能出现问题的全局/静态数据
- 不必要的前瞻性声明
- 不必要的函数声明
- 未声明的函数定义
- (计划)查找不必要的头文件#included 没有直接引用标题中的任何内容 如果类是前向声明的,则不需要标题
- (计划)引用标题不直接#included的源文件,即依赖于> - 来自另一个标题的传递#include的文件
- (计划的)未使用的成员(私有,受保护和公共)方法和数据
- (计划)将AST存储在SQL数据库中,以便查询关系
“计划”意味着它是他们计划在未来添加的功能。它还没有。