在Linux裡寫C語言代碼一般用gcc編譯,如果是一些小的程序可以使用gcc命令編譯,但是當我們寫一個大的項目的時候,我們總會把頭文件,主函數,子函數等分別放到一個文件裡,這樣可以讓代碼看起來沒有那麼長,在排錯的時候會更方便一點。可是問題又來了,那麼多文件,如果每一個文件都要用gcc -c text.c -o text.o來編譯又太過於麻煩,尤其是在每一次排錯後重新編譯的時候讓人有一種崩潰的感覺,所以這個時候用Makefile來編譯 .C程序的時候就會方便很多。
在這篇文章裡以實現strcmp函數功能作為例子:
先寫test.h文件:
main函數文件:
Cmp函數文件:
最後要寫Makefile文件:
這裡因為這個例子程序還是比較短所以直接以文件名來寫命令,在以後的大項目中可以用宏定義的方式替換這些文件名,這樣在修改的時候會提供很大的便利。
這個時候在這個文件所在的目錄下只要輸入 make 命令就可以順利編譯,如果要修改的時候,只要 make clean 就可以將編譯後的文件都刪除,如果目錄中本來就已經存在clean文件的時候,我們可以用
.PHONY:clean
clean:
rm -rf *.o test
就可以讓編譯器只識別Makefile中的clean命令。