日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

makefile中的include *******

發布時間:2025/4/9 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 makefile中的include ******* 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于makefile中的include ***,***指的是包含的文件,當執行makefile時,先執行include ***這句,加載包含的文件(夾),如果不存在則會報錯!

如果在include前面加了“-”,則在加載的時候會先去查找***文件是否存在,如果存在,則讀入且查看是否有規則對文件中的內容進行更新,如果有,那么等更新完再加載。如果沒有相應的更新規則,那么直接加載進來,但當***文件不存在的時候,會出現一個警告,但并不會直接退出,而是等完成makefile所有文件的讀取之后,再試圖用規則進行新建***文件,如果沒有規則新建這個***文件,則直接報錯,退出程序。

測試代碼:

.PHONY:all clean


MKDIR = mkdir
RM = rm
RMFLAGS = -fr

CC = gcc

AA = aa
DIR_OBJS = objs
DIR_EXES = exes
DIR_DEPS = deps
DIRS = $(DIR_OBJS) $(DIR_EXES) $(DIR_DEPS)

EXE = complicated.exe
EXE := $(addprefix $(DIR_EXES)/,$(EXE))

SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
OBJS := $(addprefix $(DIR_OBJS)/,$(OBJS))
DEPS = $(SRCS:.c=.dep)
DEPS := $(addprefix $(DIR_DEPS)/,$(DEPS))

all:$(EXE)

-include $(DEPS)
-include $(AA) 

$(AA):
??????? touch $(AA)

$(DIRS):

   $(MKDIR) $@
$(EXE):$(DIR_EXES) $(OBJS)
??????? $(CC) -o $@ $(filter %.o,$^)
$(DIR_OBJS)/%.o:$(DIR_OBJS) %.c
??????? $(CC) -o $@ -c $(filter %.c,$^)
$(DIR_DEPS)/%.dep:$(DIR_DEPS) %.c
??????? @echo "making $@ ..."
??????? @set -e; \
??????? $(RM) $(RMFLAGS) $@.tmp; \
??????? $(CC) -E -MM $(filter %.c,$^) > $@.tmp; \
??????? sed 's,\(.*\)\o[ :]*,objs/\l.o $@: ,g' < $@.tmp > $@ ; \
??????? $(RM) $(RMFLAGS) $@.tmp

clean:
??????? $(RM) $(RMFLAGS) $(DIRS)

?

運行結果如下:

轉載于:https://www.cnblogs.com/xiaoaiyi/p/3173495.html

總結

以上是生活随笔為你收集整理的makefile中的include *******的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。