makefile簡單了解

2021-09-07 03:15:44 字數 1222 閱讀 2833

vim -f 檔名 (建立規則檔案)

make makefile(規則檔案) 

#注釋cc = gcc

dir_obj = ./obj

dir_src = ./src

dir_bin = ./bin

dir_inc = ./include

objs = e1.o e2.o

objs +=e3.o       //追加乙個e3.o檔案

目標:依賴項  eg. hello:$(obj)   (目標放在開頭)

+tab鍵  編譯命令 gcc  e1.o  e2.o -o hello

$(obj):%.o:%.c                             e1.o:e1.c

$(cc) -c $< -o $@    等價於                         $(cc) -c e1.c -o e1.o

e1.o:e2.c                                ( %萬用字元 所有的.o檔案依賴與.c檔案)

@gcc -c e2.c -o e2.o                   //沒有命令輸出資訊提示

all:hello (all 後面放最終的目標)

target = $/hello           (最終的目標hello用target代替)

#debug to list objs and src

test:

@echo 「obj files:」

@echo $(objs)

@echo 「src files:」

@echo $(src)

clean:

rm -f  $(target)  $(dir_obj)/$(objs)

.phony:clean

拿clean舉例,如果make完成後,自己另外定義乙個名叫clean的檔案,再執行make clean時,將不會執行rm命令。 

為了避免出現這個問題,需要.phony: clean拿clean舉例,如果make完成後,自己另外定義乙個名叫clean的檔案,再執行make clean時,將不會執行rm命令。 

為了避免出現這個問題,需要.phony: clean

程式設計盡量少改變記憶體空間變化,而實現值的改變

*號用在

%和格式符之間,稱為:輸入賦值抑制符。即,有這個

*號存在時,需要

輸入資料

,但輸入的資料不會賦給任何變數。

Makefile簡單入門

作為linux或unix下的程式開發人員,大家一定都遇到過makefile,用make命令來編譯自己寫的程式確實是很方便。一般開發情況下,大家都是手工寫乙個簡單makefile。下面先給乙個最簡單的示例 makefile示例 object main.o function.o change objec...

makefile 簡單例項

3 複雜專案 makefile 編寫 變數定義和初始化 可選 目標 依賴項 指令目標 依賴項 指令.注 指令可以是編譯指令或其它可以在命令列執行的指令。定義變數後就可以在 目標 依賴 指令 中訪問 var name 檔案結構 檔案內容 main.c include extern intaddint ...

簡單編寫makefile

乙個makefile基本的規則 a b tab tab a為目標檔案,b為依賴檔案 可能含有多個 接下來為命令 必須含有tab 操作依賴檔案得到目標檔案 以乙個簡單的示例來演示如何編寫乙個基礎的makefile ifndef file1 h define file1 h ifdef cplusplu...