1. 程式人生 > >linux之make與makefile

linux之make與makefile

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定義偽目標,總是可以被執行