前言:由於個人精力原因,我只寫makefile的內容,c語言以及shell指令又不了解的同學,請先學習c語言以及shell指令。
寫單個檔案的makefile時,我們需要了解最基本的格式
target:prerequistes...
command
......
target:是指生成的專案。
prerequistes:是指生成專案需要的檔案。
command:是指執行的命令。
下面是具體例子:
main:main.c
gcc -o main main.c
clean: #這是乙個清除命令,我們需要在shell中通過呼叫make clean 命令來實現他。
rm main
具體的makefile實現需要是需要自己的工程目錄下面的,建立乙個makefile檔案,在該目錄下,呼叫make,就會執行編譯。生成我們想要的工程檔案。如下圖所示
當我們需要編譯多個c檔案時,我們就需要把其它c檔案編譯成.o
檔案,最後再編譯成main檔案。
main:main.c tool.o
gcc main.c tool.o -o main
tool.o:tool.c
gcc -c tool.c
clean:
rm *.o main
tool.o:tool.c
表示tool.o專案以來的檔案是tool.c,使用的命令是gcc -c tool.c
clean:
專案下的命令rm *.o main
中*.o
的含義是所有的.o
檔案
執行make時,是先執行gcc -c tool.c
,再執行gcc main.c tool.o -o main
在這裡呢,就出現了兩條新的命令
cc=gcc
flags=-lm -wall -g
在下面呼叫是這樣的
$(cc) $(flags) -c min.c
cc=gcc
表示編譯器為gcc,flags=-ml -wall -g
是特定的鏈結指令,類似c語言中的巨集的使用。
使用時,直接是$()
去替換掉對應的命令即可。就像這樣
Makefile簡易教程
在軟體開發中,make通常被視為一種軟體構建工具。該工具主要經由讀取一種名為 makefile 或 makefile 的檔案來實現軟體的自動化建構。它會通過一種被稱之為 target 概念來檢查相關檔案之間的依賴關係,這種依賴關係的檢查系統非常簡單,主要通過對比檔案的修改時間來實現。在大多數情況下,...
Makefile簡易教程
本文部分內容引用 中文維基百科。乙個簡單的makefile教程。在軟體開發中,make通常被視為一種軟體構建工具。該工具主要經由讀取一種名為 makefile 或 makefile 的檔案來實現軟體的自動化建構。它會通過一種被稱之為 target 概念來檢查相關檔案之間的依賴關係,這種依賴關係的檢查...
Makefile簡易教程
makefile簡介 在軟體開發中,make通常被視為一種軟體構建工具。該工具主要經由讀取一種名為 makefile 或 makefile 的檔案來實現軟體的自動化建構。它會通過一種被稱之為 target 概念來檢查相關檔案之間的依賴關係,這種依賴關係的檢查系統非常簡單,主要通過對比檔案的修改時間來...