一、首先,看一下最簡單的C檔案//hello.c檔案#include void main(){ printf("hello world\n");} 為hello.c編寫makefile檔案,這裡用gcc編譯
- $vi makefile
- hello:hello.c
- gcc -o hello hello.c
從中可以看出,最簡單的makefile檔案只需要兩行,我們分別來看第1行:hello是要產生的檔案,hello.c是編譯需要的源檔案,中間以:分隔第2行:是具體的編譯命令二、我們還可以用gcc先把hello.c編譯成機器語言,以.o結尾,最後再將各個檔案進行連結產生二進位檔案 上面的makefile檔案則可以寫成這樣:
- hello:hello.o
- gcc -o hello hello.o
- hello.o:hello.c
- gcc -c hello.c
從上面的代碼中可以看出,最後編譯的hello是由hello.o最後產生的先看第3,4行:第3行,hello.c先編譯產生hello.o,第4行,是產生hello.o具體的命令再看第1,2行:第1行,二進位檔案hello需要hello.o,第2行,是產生hello具體的命令 是不是很easy. 三、如果有多個檔案需要進行連結,只需產生.o檔案,最後連結產生最終檔案如:有file1.h,file1.c, file2.h, file2.c, main.c五個檔案
makefile檔案如下:
- main:main.o file1.o file2.o
- gcc -o main main.o file1.o file2.o
- main.o:main.c file1.h file2.h
- gcc -c main.c
- file1.o:file1.h file1.c
- gcc -c file1.c
- file2.o:file2.h file2.c
- gcc -c file2.c
從上面代碼可以看出,需要先編譯出file1.o,file2.o,main.o檔案,最後連結產生最終的main檔案,大功告成。