我有這個使用Makefile編譯的C++項目,有時候(我的猜測)有一些缺失包含,我得到一個神祕的「錯誤2」消息,並停止make過程。
我懷疑失蹤包括,因爲這是它包含一個不存在的頭文件時發生的第三次。Make/gcc神祕錯誤2:如何獲得更多信息?
它看起來像這樣:
---- Build tmp/foo.o ----
---- Build tmp/bar.o ----
---- Build tmp/toto.o ----
---- Build tmp/tata.o ----
make: *** [build_Project] Error 2
這是推動我堅果,因爲即使是使用詳細的命令(其中每個G ++調用時顯示),我什麼都看不到。
我希望這傢伙嘔吐一些錯誤的消息,如「找不到標題X」或「未定義的參考Y」,但沒有什麼。
我的gcc編譯選項是-O0 -Wall -Werror -Wno-write-strings -fno-rtti -fno-exceptions
,如果有幫助。
啊,而且我們使用包括依賴的Makefile中招:
ifneq ($(strip $(DEPENDS)),)
ifneq ($(MAKECMDGOALS),clean)
-include $(DEPENDS)
endif
endif
雖然這是記載的東西,我懷疑我的問題有事情做與這種依賴包容。
如果你已經無意中發現了這個問題,隨時對此置評...
在此先感謝。
編輯: 好,後一點的播放,在-include $(DEPENDS)
前抑制-
給了我一些更多的信息(生成文件不站上缺少包括文件)。
make[1]: *** No rule to make target « foo.h », necessary for « tmp/bar.d ». Stop.
現在的缺點是,當我啓動make
的第一次,我得到應包含每個依賴文件missing bar.d file
消息(這就是爲什麼我們在第一時間把-
)。 任何解決方案?
我認爲我們需要看到更多的makefile例如你如何調用gcc-並且我傾向於顯示命令編譯出於這種原因 – Mark 2011-03-22 11:01:42
如果你設置了一個變量,一些makefile會關掉花哨的輸出。例如'automake',如果你運行'make V = 1',還會嘗試'make VERBOSE = 1',或者檢查'Makefile'以獲得更好的想法。 – 2011-03-22 11:57:37