Makefile 的需求
為什么需要Makefile
一個項目起初可能會有很少的文件與工作,隨著項目的推進項目越來越大涉及的工作越來越多,涉及的文件也越來越多,當修項目中修改一個文件后,項目需要進行重新進行很多工作,但需要重新做的工作往往不是對整個項目進行重新構(gòu)建,這個時候需要重新做那些工作就需要進行整理,這個時候是Makefile出場的時候了
Makefile基本規(guī)則非常簡單
Makefile基本規(guī)則設計了三個要素
目標、依賴、規(guī)則
目標是需要的輸出
依賴是哪些輸入會影響目標
規(guī)則是由依賴生成目標所需要做的工作
只有當依賴更新后,Makefile才會執(zhí)行規(guī)則,重新生成目標
下面舉一個例子:
obj:obj.c
gcc obj.c -o obj
在這個例子中obj是目標,obj.c是依賴
gcc obj.c -o obj是規(guī)則,簡單來講就是只有當obj.c時間戳更新后才會執(zhí)行 gcc obj.c -o obj
這個規(guī)則非常簡單,但是隨著項目的推進,大量的工作存在這種關系,使用Makefile進行管理就顯得非常必要,Makefile也不負眾望能夠勝任幾乎所有的管理工作,包括項目編譯,項目打包,項目發(fā)布,項目提交,項目文檔管理等等