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...