2010-12-13 71 views
2

我有一個簡單的庫爲我生成頭文件,我希望將它們鏈接到一個Makefile中。可以使用gcc確定哪些頭文件缺失的Makefile?

如果一個cpp文件包含一個不存在的頭文件,它應該從匹配的源文件(如果存在相應的文件)生成它。我無法弄清楚如何做到這一點。

我已經嘗試使用gcc -MM提前找出每個.cpp文件的依賴關係,但是如果缺少標頭,則會失敗。我需要知道哪些文件丟失試圖重新生成它們。

如果我只是爲所有.cpp文件的頭文件定義一個先決條件,它當然會重新編譯我所有的.cpp文件。

任何想法如何我只重新生成缺少的標題?

回答

5

似乎該解決方案可以使用gcc找到:

http://gcc.gnu.org/onlinedocs/cpp/Invocation.html

-MG

在結合一個選項如-M請求依賴性 代,-MG假定缺少標題 文件是生成的文件,並將它們添加到 到依賴項列表中而沒有 引發錯誤。

0

您是否嘗試過定義模式規則以生成每個標題,例如:

%.hh: %.cpp 
    header_generator $^ > [email protected] 
+0

這不是問題。我試圖找出包含在.cpp文件中的哪些頭文件尚未構建爲僅爲這些頭文件創建規則。 – Dan 2010-12-13 20:58:21

相關問題