姓名:劉琛? 學(xué)號(hào):19020100265? ?學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:https://blog.csdn.net/zh8706/article/details/114030710?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
【嵌牛導(dǎo)讀】makefie文件介紹
【嵌牛正文】
makefie文件參數(shù)
makefile自動(dòng)化語(yǔ)句
1.自動(dòng)獲取到每個(gè)目錄
#獲取src目錄內(nèi)最大深度為3的所有子目錄路徑
SRC := src
ALLSRC? := $(shell find $(SRC) -maxdepth 3 -type d)
2. 自動(dòng)獲取源文件及目標(biāo)文件
#查找每個(gè)SUB_DIRS目錄,獲取到每個(gè).c,賦值給到SRC
SRC := $(foreach dir, $(SUB_DIRS), $(wildcard $(dir)/*.c))
#自動(dòng)獲取到源文件對(duì)應(yīng)的.o文件
OBJ := $(SRC:%.c=%.o)
CPPSRC := $(foreach dir, $(SUB_DIRS), $(wildcard $(dir)/*.cpp))
CPPOBJ := $(CPPSRC:%.cpp=%.o)
3. 在每個(gè)頭文件目錄路徑名前加-I
CINCLUDES := $(patsubst %,-I%, $(INCLUDEDIRS:%/=%))
4. 每個(gè)庫(kù)文件目錄路徑名前加-L
CLIBS := $(patsubst %,-L%, $(LIBDIRS:%/=%))
5. 靜態(tài)(自動(dòng)化)模式
下面代碼中的第1行初厚,$(OBJ)表示取目標(biāo)名,%.o: %.c表示取目標(biāo)中.o后綴的文件替換為.c唠椭,作為依賴文件憎账。第2行的$<是指第1行中完成替換后的.c文件
$(OBJ): %.o: %.c
$(CC) -c $< -o $@? $(INC_FLAGS) $(CFLAGS)
以上代碼可簡(jiǎn)寫(xiě)為:
%.o: %.c
? ? $(CC) -c $< -o $@? $(INC_FLAGS) $(CFLAGS)
————————————————
版權(quán)聲明:本文為CSDN博主「夜風(fēng)里唱」的原創(chuàng)文章面氓,遵循CC 4.0 BY-SA版權(quán)協(xié)議羔味,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明河咽。
原文鏈接:https://blog.csdn.net/zh8706/article/details/114030710