的我的源代碼的文件夾的結構定義如下:克++生成依賴文件錯過用戶定義的報頭
src
|--c
|--c.h
|--c.cpp
「CH」聲明瞭一個名爲「B」和「c.cpp」定義的類的'B'級。
假設我們現在在'src'文件夾中。我運行
g++ -I./ -MM -MT c/c.o -MF c/c.d c/c.cpp
爲'c/c.cpp'生成依賴文件'c/c.d'。文件 'C/c.d' 的內容,但是,不通過
#include "c/c.h".
但是包含 'C/CH' 即使我已經包括了 'C/CH' IN 'C/c.cpp' ,如果我們在文件夾'c'並運行上述命令,結果會不同。通過在上述過程中用'c.h'代替'c/c.h',我可以得到一個正確的依賴文件(意思是'c.h'在依賴文件中)。
任何人都知道爲什麼第一個進程錯過標題依賴的原因?
我同意你說的大部分內容。 -I ../雖然不起作用。另外,向'src'摺疊添加-I絕對路徑也不起作用。 – user3677630
@ user3677630 - 如果它不起作用,那你爲什麼接受答案?也許你應該把問題留給更多的時間,看看別人是否知道問題的答案。 – jww
@jww「-I ../」的部分只是答案的一小部分。其餘部分仍然有效。只要這個答案的一部分解決了這個問題,這是正確的。 – RichS