2010-11-02 46 views
3

我需要从几个.h文件中删除一堆函数原型,并且想知道是否有某种类型的bash脚本/程序用于查找不在.c文件并自动删除它们。从.h文件中删除未使用的函数原型

当你有一个大项目并且你没有跟踪所有的变化时,这对清理源代码非常有用。

请注意,它与二进制文件没有任何关系,我想从代码中删除它们。

回答

2

我不知道任何适合您需要的程序;但有一些整齐的侧面思考,你到达cproto,这种做你需要的。只要删除当前的头文件,运行cproto就可以得到一个只包含相关原型的新文件,然后在你的序言中加入你需要的宏和typedefs。

1

你可以使用makeheaders生成头文件与原型在正确的列表,要么使用这些标题,或cut'n'paste的定义,以取代的那些在现有的头

1

您也许能够以您最喜欢的脚本语言实现此循环:

对于每个.c文件,找到相应的.h文件。使.h文件中的所有原型都是静态的。编译.c文件。清除有关未定义静态声明的编译器错误。恢复剩余的原型。

1

这不完全是你想要的,但可能会接近。如果你使用doxygen,你可以让它生成一大堆列表,并将它们可视化为图形。其中一个是called by与函数的关系,另一个是关于文件的included by关系。

您不需要将doxygen特别注释放入,您可以将其用作关于您的项目的结构信息。

1

我试过cproto和makeheaders。

第一个按预期工作:我创建了头文件,然后我复制了typedef定义,包含到其他头文件(重要!)等等,一切工作正常。

makeheaders有点复杂/聪明,因为它会在.c之后创建.h,因此在.h中不需要包含其他任何内容。