我想創建一個特定文件的依賴關係列表。例如:是否有可能爲C++文件生成依賴關係列表?
//a.cpp
#include "b.h"
#include <cstdio>
int main(){printf("%d\n",fn());}
//b.h
int fn();
//b.cpp
#include "b.h"
#include "c.h"
int fn(){return fn2();}
//c.h
inf fn2();
//c.cpp
#include "c.h"
int fn2(){return 5;}
對於那些文件一個取決於b取決於Ç。所以通緝程序的結果應該是:
a: a.o b.o c.o
是的,它是用於makefile。由於某些原因,我不希望列表中包含目錄中的所有.o
文件,因此%.o
將不起作用。此外,我所知道的g++ -MMD
選項,它幾乎作品我想要的 - 但它僅列出直接依賴關係,在這種情況下:
a.o: a.cpp b.h
(擴展名是不是一個問題,我可以後置信稍後處理它們)
有沒有簡單的方法來生成這樣的列表?
我想你可以按任何順序列出'o'文件嗎? –
'-MD'做你想要的嗎? '-MMD'不包含系統頭文件。 – Wintermute
@MooingDuck是的,我可以。但我不想手動輸入它們,而-MMD選項不會給出*遞歸*依賴關係,只是直接的。 – akrasuski1