- 什麼是 標的?
- 標的就是在makefile中單冒號前的名稱,是代表了一個與他同名的文件,編譯之後生成的.o文件,編譯鏈接之後生成的可執行文件或者其他任何類型的文件,例如下邊例子中main這個標的代表的就是main這個可執行文件。
main: gcc -o main main.c
- 標的的語法
target代表的是一個 標的(可以有1+個),prerequisites代表的是這個標的所依賴的標的(1+個),下面那個command就是生成這個標的 的命令。target ...: prerequisites command command
- 標的 在makefile中的執行過程
- 1.makefile中的每個標的都代表了一個文件。
- 2.如果只運行make命令(區別make all等),那麼默認執行第一個標的。
- 3.執行一個標的時,會做兩件事情:
- 3.1.查看與這個標的同名的文件是否存在,如果不存在,那麼就運行這個標的下面的命令。
- 3.2.如果與這個標的同名的文件已經存在,那麼就檢查與這個標的同名的文件是否需要更新(即標的文件的修改時間是否早於依賴文件的修改時間),如果需要更新,那麼就運行這個標的下面的命令。
- 重要的例子
- 例1
main: gcc -o main main.c
- 例2(clean標的):
如果運行make clean命令,那麼就會刪除main這個可執行文件,那麼這個標的的原理是什麼呢?其實當運行make clean命令之後,它的執行步驟是這樣的:main: main.c gcc -o main main.c clean: rm main
由於clean標的沒有依賴的文件,所以它就是檢查clean這個文件是否存在,如果不存在,那麼執行clean標的下面的命令來生成clean文件。但是下面的rm命令又不會生成clean文件,所以導致的結果就是每回我們運行make clean命令,都會執行下面的rm命令。如下圖所示: - 例1
makefile中的標的(di)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.