【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
對於程式設計員來說,makefile是我們繞不過去的一個坎。可能對於習慣Visual C++的使用者來說,是否會編寫makefile無所謂。畢竟工具本身已經幫我們做好了全部的編譯流程。但是在Linux上面,一切變得不一樣了,沒有人會 為你做這一切。編代碼要靠你,測試要靠你,最後自動化編譯設計也要靠你自己。想想看,如果你下載了一個開源軟體,卻因為自動化編譯失敗,那將會在很大程度 上打擊你學習代碼的自信心了。所以,我的理解是這樣的。我們要學會編寫makefile,至少會編寫最簡單的makefile。
首先編寫add.c檔案,
[cpp] view plaincopy
- #include "test.h"
- #include <stdio.h>
-
- int add(int a, int b)
- {
- return a + b;
- }
-
- int main()
- {
- printf(" 2 + 3 = %d\n", add(2, 3));
- printf(" 2 - 3 = %d\n", sub(2, 3));
- return 1;
- }
再編寫sub.c檔案,
[cpp] view plaincopy
- #include "test.h"
-
- int sub(int a, int b)
- {
- return a - b;
- }
最後編寫test.h檔案,
[cpp] view plaincopy
- #ifndef _TEST_H
- #define _TEST_H
-
- int add(int a, int b);
- int sub(int a, int b);
- #endif
那麼,就是這三個簡單的檔案,應該怎麼編寫makefile呢?
[cpp] view plaincopy
- test: add.o sub.o
- gcc -o test add.o sub.o
-
- add.o: add.c test.h
- gcc -c add.c
-
- sub.o: sub.c test.h
- gcc -c sub.c
-
- clean:
- rm -rf test
- rm -rf *.o