2011-12-09 42 views
0

我創建了一個自動工具項目,並在Makefile.am我:的Automake產生的makefile已編譯的命令註釋掉

bin_PROGRAMS = myBin 
myBin_SOURCES = src/main.cpp 

生成的Makefile有這樣的目標:

.cpp.o: 
# $(CXXCOMPILE) -MT [email protected] -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o [email protected] $< 
# $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 
    source='$<' object='[email protected]' libtool=no \ 
    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \ 
    $(CXXCOMPILE) -c -o [email protected] $< 

正如你所看到的,實際的編譯器調用被註釋掉了。爲什麼?

+0

更新:如果我使用--disable-dependency-tracking運行./configure,它會生成正常。 – n00

+2

你的代碼片段的最後一行是編譯器調用,它沒有被註釋掉!這些註釋取決於您是否使用--disable-dependency-tracking進行調用,以便只執行一次編譯器調用。 –

+0

最後三行只是一個變量賦值。查看第4行和第5行末尾的斜線。 – n00

回答

2

根據在configure時間檢測/請求的依賴關係跟蹤,編譯命令的不同部分將被註釋掉。在戰略位置將#代入Makefile是automake實現條件的方式。嘗試找到Makefile.in的原始線條,並看看。