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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个高级的makefile文件

發布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个高级的makefile文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該Makefile適用于最后生成若干個可執行文件的小型C/C++工程,只要將該Makefile放在源碼根目錄下make,它會自動查找該目錄下(包括子目錄)的所有源碼文件(支持.cpp .c .h格式)并自動生成正確的依賴關系,并且為了不污染源碼文件夾,源碼和編譯過程中的中間文件會分開(Debug模式編譯生成的中間文件在Debug目錄下,Release模式在Release目錄下)。

1 ########################################################### 2 # 3 # MAKEFILE FOR C/C++ PROJECT 4 # Author: Abbey (Abbeychenx@gmail.com) 5 # Date: 2014/07/07 6 # 7 ########################################################### 8 9 .PHONY: all clean 10 all: 11 12 # annotation when release version 13 DEBUG := y 14 TARGET_PROG := main 15 16 # project directory 17 DEBUG_DIR := ./Debug 18 RELEASE_DIR := ./Release 19 BIN_DIR := $(if $(DEBUG), $(DEBUG_DIR), $(RELEASE_DIR)) 20 21 # shell command 22 CC := gcc 23 CXX := g++ 24 RM := rm -rf 25 MKDIR := mkdir -p 26 SED := sed 27 MV := mv 28 29 # init sources & objects & depends 30 sources_all := $(shell find . -name "*.c" -o -name "*.cpp" -o -name "*.h") 31 sources_c := $(filter %.c, $(sources_all)) 32 sources_cpp := $(filter %.cpp, $(sources_all)) 33 sources_h := $(filter %.h, $(sources_all)) 34 objs := $(addprefix $(BIN_DIR)/,$(strip $(sources_cpp:.cpp=.o) $(sources_c:.c=.o))) 35 deps := $(addprefix $(BIN_DIR)/,$(strip $(sources_cpp:.cpp=.d) $(sources_c:.c=.d))) 36 37 # create directory 38 $(foreach dirname,$(sort $(dir $(sources_c) $(sources_cpp))),\ 39 $(shell $(MKDIR) $(BIN_DIR)/$(dirname))) 40 41 # complie & link variable 42 CFLAGS := $(if $(DEBUG),-g -O, -O2) 43 CFLAGS += $(addprefix -I ,$(sort $(dir $(sources_h)))) 44 CXXFLAGS = $(CFLAGS) 45 LDFLAGS := 46 LOADLIBES += #-L/usr/include/mysql 47 LDLIBS += #-lpthread -lmysqlclient 48 49 # add vpath 50 vpath %.h $(sort $(dir $(sources_h))) 51 vpath %.c $(sort $(dir $(sources_c))) 52 vpath %.cpp $(sort $(dir $(sources_cpp))) 53 54 # generate depend files 55 # actually generate after object generated, beacasue it only used when next make) 56 ifneq "$(MAKECMDGOALS)" "clean" 57 sinclude $(deps) 58 endif 59 60 # make-depend(depend-file,source-file,object-file,cc) 61 define make-depend 62 $(RM) $1; \ 63 $4 $(CFLAGS) -MM $2 | \ 64 $(SED) 's,\($(notdir $3)\): ,$3: ,' > $1.tmp; \ 65 $(SED) -e 's/#.*//' \ 66 -e 's/^[^:]*: *//' \ 67 -e 's/ *\\$//' \ 68 -e '/^$/ d' \ 69 -e 's/$/ :/' < $1.tmp >> $1.tmp; \ 70 $(MV) $1.tmp $1; 71 endef 72 73 # rules to generate objects file 74 $(BIN_DIR)/%.o: %.c 75 @$(call make-depend,$(patsubst %.o,%.d,$@),[ DISCUZ_CODE_0 ]lt;,$@,$(CC)) 76 $(CC) $(CFLAGS) -o $@ -c [ DISCUZ_CODE_0 ]lt; 77 78 $(BIN_DIR)/%.o: %.cpp 79 @$(call make-depend,$(patsubst %.o,%.d,$@),[ DISCUZ_CODE_0 ]lt;,$@,$(CXX)) 80 $(CXX) $(CXXFLAGS) -o $@ -c [ DISCUZ_CODE_0 ]lt; 81 82 # add-target(target,objs,cc) 83 define add-target 84 REAL_TARGET += $(BIN_DIR)/$1 85 $(BIN_DIR)/$1: $2 86 $3 $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ 87 endef 88 89 # call add-target 90 $(foreach targ,$(TARGET_PROG),$(eval $(call add-target,$(targ),$(objs),$(CXX)))) 91 92 all: $(REAL_TARGET) $(TARGET_LIBS) 93 94 clean: 95 $(RM) $(BIN_DIR)

轉載于:https://www.cnblogs.com/ckLXHL/p/3864333.html

總結

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

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

主站蜘蛛池模板: 亚洲日本视频在线观看 | 午夜操操 | 在线色图| 91麻豆精品国产91久久久更新时间 | 男女插插网站 | 成人免费黄| 少妇高潮一区二区三区69 | 午夜精品少妇 | 99精品视频在线观看免费 | 国产一区二区视频在线观看免费 | 国产女18毛片多18精品 | 黄色三级网络 | 人妻少妇久久中文字幕 | 又嫩又硬又黄又爽的视频 | 男人的天堂视频在线观看 | 成人免费观看cn | 麻豆传媒在线免费 | 成人短视频在线播放 | 污污视频免费看 | av老司机在线 | 人人爽人人射 | 自拍偷拍激情视频 | 先锋影音av资源网 | 校园春色在线观看 | 性生交大片免费看狂欲 | 色婷婷综合久久久久中文字幕 | 久久不卡av | 性猛╳xxx乱大交 | 欧美精品亚洲 | 在线看一级片 | 日本高清视频免费看 | 性――交――性――乱a | 欧美日韩理论 | 99国产精品视频免费观看一公开 | 色666 | 日老女人视频 | 久久春色 | 国产精品欧美精品 | 五月丁香综合激情六月久久 | 中文在线最新版天堂 | 亚洲精品久久久久久久久 | 亚洲人成电影网 | 超碰在线伊人 | 免费一级毛片麻豆精品 | 国产又粗又猛又爽免费视频 | 一本色道久久综合精品婷婷 | 日韩视频在线观看一区二区三区 | 夜夜天天操| 国产真实乱在线更新 | www.天天色| 日本美女动态图 | 91色漫| 九九黄色大片 | 嫩草影院中文字幕 | www亚洲成人 | 三级国产视频 | 性大片潘金莲裸体 | 欧美一本 | 国产中文字幕免费 | 扒开女人屁股进去 | 亚洲av片在线观看 | 成人91视频 | 国产一区二区麻豆 | 在线观看香蕉视频 | 91久久视频 | 国产美女诱惑 | 依人综合网 | 久久久久久亚洲精品 | 国产第9页| 久久精品播放 | 中文字幕女同女同女同 | 日韩国产在线观看 | 国内精品视频 | 麻豆视频免费在线 | 国产字幕侵犯亲女 | 黄色三级大片 | 无套内谢老熟女 | 欧美xxxx18国产 | 丰满少妇aaaaaa爰片毛片 | 欧美成人第一页 | 打美女白嫩屁屁网站 | 波多野42部无码喷潮在线 | 国产freexxxx性播放麻豆 | 国产一区一区 | 久色免费视频 | 日韩 国产 | 欧美网站在线观看 | 中文字幕高清在线免费播放 | 一级人爱视频 | 日韩在线第一 | 欧美一区二区在线看 | 波多野结衣先锋影音 | 天天色天天干天天色 | 日韩tv | 鸭子av| 久久精品国产精品亚洲 | 99精品视频国产 | 日韩在线综合 | 亚洲av不卡一区二区 |