我想在代码库中找到未使用的函数 - 包括跨编译单元。我使用 gcc 作为我的编译器。
这是一个例子:
foo.c
(假设适当foo.h
):
void foo() {
....
}
void bar() {
....
}
main.c
:
#include <stdio.h>
#include "foo.h"
int main(void) {
bar();
return 0;
}
在此示例中,我想收到警告foo()
没有被使用。
有的是-Wunused-function
海湾合作委员会选项:
-Wunused-function
每当声明静态函数但未定义或未使用非内联静态函数时发出警告。这个警告是
由-Wall启用。
但它仅适用于静态函数 - 它不会对上面的示例产生警告。
我还将接受可以为我执行此操作的工具/脚本/其他编译器的建议 - 尽管我更愿意坚持使用gcc
如果可能的话。
曹兰·麦克纳马拉 http://caolanm.blogspot.com/一位 LibreOffice 开发人员制作了一个小工具来检测 LibreOffice 源代码中的此类内容。他们有大约数千个 LibreOffice 中未使用的函数和方法。他的工具是去除它们的关键要素。
它被称为呼叫捕捉器 http://github.com/caolanm/callcatcher. It can
收集定义的函数/方法并减去调用/引用的函数/方法
它直接作用于汇编器输出,因此仅适用于 x86 和 x86_64 架构。它可以产生类似的输出this http://people.redhat.com/caolanm/callcatcher/DEV300_m47/sd.callcatcher.log。您可以将其与传统的编译和链接调用集成到 gcc 中。
Caolan同意它应该成为一个gcc插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)