乙個最簡單的Makefile例子

2021-06-17 20:35:00 字數 1685 閱讀 6607

1.hello.c

#include

int main()

2.makefile

hello : hello.o

cc -o hello hello.o

hello.o : hello.c

cc -c hello.c

clean : 

rm hello.o

說明:cc -o hello hello.o前面是乙個tab的空格

3.執行make,產生可執行檔案hello

輸出如下:

cc -c hello.c

cc -o hello hello.o

4.執行make clean,刪除產生的中間檔案hello.o

輸出如下:

rm hello.o

一、程式的編譯及鏈結

我們編譯程式,無非是想要得到乙個可執行檔案,而這個過程則是經過這兩步:

***.c->編譯->***.o->鏈結->可執行檔案。即.c經過編譯得到.o檔案,.o檔案是乙個中間檔案,再對這些中間檔案進行鏈結最終可得到可執行檔案。

二、makefile的規則

首先,來看一看makefile的書寫規則:

target ... : prerequisites ...

command

......

target也就是乙個目標檔案,可以是.o檔案,也可以是執行檔案,還可以是乙個標籤(label)。

prerequisites就是,要生成那個target所需要的檔案或是目標。

command也就是make需要執行的命令(任意的shell命令)。這裡要注意的是在命令前面要加上乙個tab鍵,不是空格,是按乙個tab鍵按出來的空格。

這是乙個檔案的依賴關係,也就是說,target這乙個或多個的目標檔案依賴於prerequisites中的檔案,其生成規則定義在command中。說白一點就是說,prerequisites中如果有乙個以上的檔案比 target檔案要新的話,command所定義的命令就會被執行。這就是makefile的規則,也就是makefile中最核心的內容。這是makefile的主線和核心,但要寫好乙個makefile還得繼續努力。

三、乙個最簡單的makefile例子

如有乙個工程,含有3個頭檔案及四個c檔案,那為了生成所需的可執行檔案,這時的makefile可以這樣寫:

test:main.o t1.o t2.o t3.o

gcc –o test main.o t1.o t2.o t3.o

main.o:main.c

gcc –c main.c

t1.o:t1.c t1.h

gcc –c t1.c

t2.o:t2.c t2.h

gcc –c t2.c

t3.o:t3.c t3.h

gcc –c t3.c

clean:

rm test main.o t1.o t2.o t3.o

到這裡乙個最簡單的makefile就寫好了,把它的名字儲存為makefile就可以了,這時你只要在終端敲一下make,它就自動幫你編譯鏈結了^_^如果敲入make clean,它將刪掉那些中間檔案及可執行檔案。

乙個最簡單的makefile示例

1.hello.c include int main 2.makefile hello hello.o cc o hello hello.o hello.o hello.c cc c hello.c clean rm hello.o 說明 cc o hello hello.o前面是乙個tab的空格 ...

乙個簡單的makefile教程

寫makefile是乙個非常便利的編譯方法,由於以前習慣把所有的 都集中在乙個檔案中,體現不出make的優勢,當把源 拆分成若干個原始檔,makefile就顯得必要了。以下是乙份簡單的makefile的教程,參考自a makefile tutorial。正如原文所說,這份教程只是打算讓初學者快速入門...

最簡單的makefile

hello.c的內容如下 include int main makefile 的內容如下 hello.exe hello.o gcc o hello.exe hello.o hello.o hello.c gcc c hello.c clean rm hello.o hello.exe window...