2010-11-02 49 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中不需要包含其他任何內容。