我們在編寫的程式的時候,為了複用會封裝一些方法,這樣就涉及到多個檔案的編譯,如何編譯這些不同的檔案,並連結成最後的可執行程式,如何管理這些檔案,一次編譯?
編寫math.h 標頭檔
/*--===------------------------------------------===---
filename: math.h
實現簡單的檔案操作
--===------------------------------------------===---*/
extern int add(int i, int j);
編寫math.c檔案
/*--===------------------------------------------===---
filename: math.c
實現 math.h 檔案裡面定義的方法
編譯方法:gcc -c math.c -o math.o
--===------------------------------------------===---*/
int add(int i, int j)
{
return i+j;
}
編寫main.c程式
/*--===------------------------------------------===---
filename: main.c
主程式,測試 math.h 和 math.c 檔案。
編譯方法:gcc -c main.c -o main.o
--===------------------------------------------===---*/
#include "math.h"
#include <stdio.h>
int main(int argc, int argv)
{
printf("the sum 3+5=%d.\n",add(3,5));
return 0;
}
最後,通過 gcc main.o math.o -o main 產生main程式。
xumh@ubuntu:~/cpp/make$ cat makefile
main: main.o math.o
gcc main.o math.o -o main
main.o : main.c math.h
gcc -c main.c -o main.o
math.o : math.c math.h
gcc -c math.c -o math.o
clean:
rm -f *.o
xumh@ubuntu:~/cpp/make$