首頁  >  問答  >  主體

c++ - Makefile文件修改后,编译程序是否需要重新clean后,编译?

Makefile文件修改后,编译程序是否需要重新clean后,编译?

可否从Makefile的工作原理上剖析一下 ,是否每次都需要对工程代码,修改->make clean->make -j

巴扎黑巴扎黑2765 天前629

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 11:32:07

    Makefile從原理說就是一堆依賴關係:

    target : dependencies
        action
    

    簡單說就是,make會檢查dependencies和target的新舊,如果target比較舊,那麼就執行action。
    對於典型的程式而言,target大多是可執行程式或目標文件,dependencies大多是原始碼(也許還有頭檔之類),action大多是編譯指令,例如gcc -o $@ $^,Makefile本身倒是很少會出現在這種依賴關係當中。
    從這個角度來看,你改動了Makefile對於target本身有可能是沒有影響的,重新make不一定有必要,但是有可能你對Makefile的改動造成了依賴關係的變化,這種情況下你可能需要重來一遍。

    回覆
    0
  • 取消回覆