2012-09-29 90 views
0

我有install目標取決於我的all目標,然後依賴於prog,這是需要安裝的程序的名稱。問題是,當我更改prog.cpp並運行make install時,它不會重新編譯。但是,當我運行make時,它確實如此。 實際檢查有多深將查看是否有需要更新的目標?因爲它似乎很快就會停止...檢查依賴關係有多深?

+2

比這更深,所以問題是別的。如果您沒有在命令行中指定目標,那麼目標是文件中的第一個目標(或IIRC,如果適用,它是第一個出現在文件中的目標),或者.DEFAULT_GOAL,不一定是「全部」。 –

回答

2

「Make」檢查依賴關係,不管它們有多「深」,但它不會自動執行任何操作。如果「make install」沒有建立一個導致實際構建的適當的依賴關係鏈,那麼它根本就不會發生。

例子:

install: 
    cp Program /usr/bin/Program 

將做到這一點:它會複製程序和別的什麼也不做。

install: Program 
    cp Program /usr/bin/Program 

說,「安裝」依賴於「計劃」,所以在實際上做與相關聯的命令「安裝」,使將尋找的東西做對「計劃」。