我需要爲我當前的項目編寫文檔,其中列出了所有的.c文件,並且每個列出了該文件直接或間接包含的每個.h文件。自動發現C依賴關係
這是一個大型項目,雖然我們有理論上有這種信息的Makefiles,但這些Makefiles有時是不正確的(我們從另一家公司繼承了此項目)。我們經常必須爲我們的更改做一個make clean ; make
實際上反映在重新編譯中,所以我不想依賴這些Makefiles。
那麼有沒有一種工具可以讓我們給它一個.c文件的名稱和一個包含路徑,並讓它告訴我們.c文件直接或間接包含的所有.h文件?我們沒有任何奇怪的東西像
#define my_include "some_file.h"
#include my_include
所以這個工具不需要是完美的。任何搜索包含常規包含路徑中的.c和.h文件都足夠好。
你可以改變一個頭,包括一個額外的頭,從而改變所有的源文件的依賴關係,但你所依賴的列表將不會被更新。完全正確地完成它可能非常費力IIRC,但一個好的開始是將所有自己的頭文件包含在依賴關係中。 – 2008-10-27 14:42:37
哦,爲了提高性能,請注意,如果有任何文件發生更改,則會重新處理所有文件。所以你可能想要有多個依賴文件(甚至每個源文件可能有一個)。最後,請注意,您通常可以使用-MM,這會跳過對系統標題的依賴關係,因爲您不會更改它們。 – 2008-10-27 14:49:08
其實我說謊 - 我總是用-MM我自己:) – 2008-10-28 17:11:47