linux之make與makefile
阿新 • • 發佈:2018-12-10
make是一個命令,Makefile是一個檔案(可大寫也可以小寫)
Makefile裡面放的是依賴關係和依賴方法
新建一個makefile檔案,在Makefile裡寫:
hello:hello.c
gcc -o hello hello.c //必須以table開頭
儲存退出
生成可執行:
直接make,然後./hello就可以執行
make hello.c
./hello
Makefile很重要,會不會Makefile,說明了一個人是否具備完成大型工程的能力
清理專案(clear):
繼續在makefile 裡寫:
hello:hello.c gcc -o hello hello.c clean: rm -f hello
預設執行的時候,從上到下,只生成hello(沒有clean,clean不依賴任何檔案)
如果要使用clean就直接用make clean命令。
偽目標:總是被執行
偽目標也是目標。為什麼要用偽目標?
因為現在生成(編譯)工程的方式是直接make,清理就直接make clean,
但規定如果要想第二次編譯,必須保證修改過原始碼。
如果想要他總是去編譯(不修改也可以編譯),那麼我們在最前面加入.PHONY就可以總是被執行。
把clean設定成偽目標:
hello:hello.c gcc -o hello hello.c .PHONY:clean //把後面的標籤變成偽目標 clean: rm -f hello
也可以吧hello設定成偽目標:
.PHONY:hello
hello:hello.c
gcc -o hello hello.c
.PHONY:clean //把後面的標籤變成偽目標
clean:
rm -f hello
所以.PHONY就是定義之後可以總是被執行。
總結:
1、make是一個指令。Makefile是一個檔案,放的是依賴關係。
2、依賴方法前必須用Tab開頭,之後放依賴方法。
3、.phony定義偽目標,總是可以被執行