青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

通用Makefile及部分解釋(轉)

Posted on 2009-06-01 14:26 Prayer 閱讀(1243) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

######################################
# Copyright (c) 1997 George Foot (george.foot@merton.ox.ac.uk)
# All rights reserved.
######################################
#目標(可執行文檔)名稱,庫(譬如stdcx,iostr,mysql等),頭文件路徑
DESTINATION := test
LIBS :=
INCLUDES := .


RM := rm -f
#C,CC或CPP文件的后綴
PS=cpp
# GNU Make的隱含變量定義
CC=g++
CPPFLAGS = -g -Wall -O3 -march=i486
CPPFLAGS += $(addprefix -I,$(INCLUDES))
CPPFLAGS += -MMD

#以下部分無需修改
SOURCE := $(wildcard *.$(PS))
OBJS := $(patsubst %.$(PS),%.o,$(SOURCE))
DEPS := $(patsubst %.o,%.d,$(OBJS))
MISSING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS))
MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.$(PS),$(MISSING_DEPS)))

.PHONY : all deps objs clean rebuild

all : $(DESTINATION)

deps : $(DEPS)
         $(CC) -MM -MMD $(SOURCE)


objs : $(OBJS)

clean :
         @$(RM) *.o
         @$(RM) *.d
         @$(RM) $(DESTINATION)

rebuild: clean all

ifneq ($(MISSING_DEPS),)
$(MISSING_DEPS) :
         @$(RM) $(patsubst %.d,%.o,$@)
endif

-include $(DEPS)

$(DESTINATION) : $(OBJS)
         $(CC) -o $(DESTINATION) $(OBJS) $(addprefix -l,$(LIBS))
#結束

  • 原作者是Gorge Foot,寫這個Makefile的時候還是一個學生
  • ":="賦值,和"="不同的是,":="在賦值的同時,會將賦值語句中所有的變量就地展開,也就是說,A:=$(B)后,B的值的改變不再影響A
  • 隱含規則。GUN Make在不特別指定的情況下會使用諸如以下編譯命令:$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@,這也是為什么這個Makefile最后一個命令沒有添加$(CPPFLAGS)的原因,因為缺省是包含這個變量的
  • 函數和變量很相似:"$ (函數名,空格,一列由逗號分隔的參數)"
  • SOURCES = $(wildcard *.cpp) 列出工作目錄下文件名滿足"*.cpp"條件的文件,以空格分隔,并將列表賦給SOURCE變量
  • patsubst函數:3個參數。功能是將第三個參數中的每一項(由空格分隔)符合第一個參數描述的部分替換成第二個參數制定的值
  • addprefix函數:2個參數。將源串(第2個參數,由空格分隔)中的每一項添加前綴(第1個參數)
  • filter-out函數:2個參數。從第二串中過濾掉包含在第一個串中的項
  • $(CC) -MM -MMD $(SOURCE) : 對每個源文件生成依賴(dependence,Make通過依賴規則來判斷是否需要重新編譯某個文件),"D"生成".d"文件,-MM表示去掉 depends里面的系統的頭文件(使用<>包含的頭文件)(若使用-M則全部包含,事實上,系統頭文件被修改的可能性極小,不需要執行依賴檢查)
  • .PHONY,不檢查后面制定各項是否存在同名文件
  • ifneg...else...endif,Makefile中的條件語句
  • -include $(DEPS) : 將DEPS中的文件包含進來,"-"表示忽略文件不存在的錯誤
  • @$(RM) *.o : 開頭的"@"表示在Make的時候,不顯示這條命令(GNU Make缺省是顯示的)
  • all : 作為第一個出現的目標項目,Make會將它作為主要和缺省項目("make"就表示"make all")
  • deps : 只生成依賴文件(.d文件)
  • objs : 為每一個源碼程序生成或更新 '.d' 文件和'.o'文件
  • clean : 刪除所有'.d','.o'和可執行文件
  • rebuild : clean然后重建
  • 內部變量$@, $< $^ : 分別表示目標名(:前面的部分,比如all),依靠列表(:后面的部分)中的第一個依靠文件,所有依靠文件
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线视屏| 久久一综合视频| 亚洲欧美另类在线| 蜜乳av另类精品一区二区| 一区二区三区欧美亚洲| 久热精品视频在线观看一区| 国产嫩草一区二区三区在线观看| 欧美精品在线观看91| 国产在线观看精品一区二区三区| 亚洲综合视频在线| 欧美日韩免费观看一区=区三区| 亚洲深夜福利网站| 欧美日韩综合一区| 亚洲午夜国产一区99re久久| 亚洲成色777777女色窝| 黄色日韩网站| 老妇喷水一区二区三区| 欧美综合国产精品久久丁香| 国产色视频一区| 久久精品视频播放| 久久激情综合网| 影音先锋中文字幕一区| 蜜臀91精品一区二区三区| 久久综合99re88久久爱| 91久久在线观看| 亚洲国产精品va在线看黑人| 久久久久久网址| 一区精品在线播放| 亚洲国产精品国自产拍av秋霞| 久久亚洲一区二区| 欧美不卡三区| 亚洲深夜福利视频| 亚洲综合清纯丝袜自拍| 国产揄拍国内精品对白| 欧美波霸影院| 欧美日韩成人一区二区| 亚洲欧美一区二区精品久久久| 亚洲电影自拍| 欧美亚洲色图校园春色| 欧美伊人久久| 亚洲精品乱码久久久久久蜜桃91 | 欧美一站二站| 午夜精品视频在线观看| 永久久久久久| 日韩视频永久免费| 国产一区再线| 亚洲美女毛片| 国产午夜精品美女毛片视频| 亚洲人体影院| 一区二区免费在线观看| 狠狠久久亚洲欧美| 日韩午夜电影| 一区二区在线看| 99riav1国产精品视频| 国产亚洲精品aa| 亚洲国产欧美另类丝袜| 制服丝袜亚洲播放| 久久先锋影音| 免费久久99精品国产自在现线| 亚洲国产免费看| 99国内精品久久| 久久久精品国产免费观看同学| 激情五月综合色婷婷一区二区| 亚洲国产视频一区| 国产精品一区二区三区四区| 欧美aaa级| 国产精品视频一二三| 欧美华人在线视频| 国产精品资源在线观看| 国产毛片一区二区| 亚洲精品一区二区在线| 亚洲嫩草精品久久| 亚洲人屁股眼子交8| 欧美一区观看| 亚洲午夜女主播在线直播| 久久这里有精品视频| 欧美一区2区三区4区公司二百| 欧美黑人在线观看| 美国十次了思思久久精品导航| 国产女主播一区二区| 日韩视频一区二区在线观看 | 亚洲免费成人av| 欧美一区二区黄色| 亚洲欧美在线观看| 欧美色视频日本高清在线观看| 欧美成人免费一级人片100| 国产乱码精品一区二区三区忘忧草 | 亚洲永久免费视频| 欧美v日韩v国产v| 蜜桃av综合| 狠狠88综合久久久久综合网| 亚欧美中日韩视频| 欧美亚洲日本网站| 国产伦精品一区二区三区免费| 一区二区三区视频观看| 9i看片成人免费高清| 欧美激情亚洲激情| 亚洲人成小说网站色在线| 亚洲国产精品久久人人爱蜜臀| 久久久久99| 一区二区高清视频在线观看| 欧美成人精品一区二区三区| 欧美成人国产| 久久久999成人| 亚洲视频在线观看网站| 亚洲经典三级| 最新国产精品拍自在线播放| 亚洲国产乱码最新视频| 美女网站久久| 亚洲国产日韩欧美在线图片| 亚洲免费观看高清完整版在线观看熊| 免费久久99精品国产| 亚洲人成亚洲人成在线观看| 洋洋av久久久久久久一区| 欧美日韩一区二区视频在线| 这里只有精品视频| 久久精品人人做人人爽| 影音先锋久久久| 欧美精品福利在线| 亚洲一区二区三区四区中文| 久久久久久久999| 亚洲国产天堂久久国产91| 欧美激情亚洲视频| 久久久久久久久一区二区| 亚洲大片av| 欧美日韩亚洲一区二区| 午夜精品一区二区三区在线视| 免费看av成人| 亚洲一卡久久| 在线观看国产成人av片| 欧美日韩综合在线| 欧美中文在线字幕| 久久久夜精品| 亚洲丝袜av一区| 老司机一区二区三区| 一区二区欧美亚洲| 国产在线精品自拍| 欧美日韩激情网| 亚洲午夜久久久| 在线亚洲免费| 欧美大片免费久久精品三p| 亚洲资源av| 亚洲高清毛片| 国产精品中文字幕欧美| 欧美顶级少妇做爰| 欧美一区二区三区电影在线观看| 亚洲激情精品| 久久久久国产精品一区二区| 一区二区三区欧美在线观看| 美女999久久久精品视频| 9色精品在线| 亚洲第一精品在线| 久久久久高清| 西瓜成人精品人成网站| 亚洲精品影视在线观看| 国产真实乱偷精品视频免| 欧美亚洲成人网| 欧美激情一二三区| 香蕉久久久久久久av网站| 欧美日韩午夜激情| 免费精品视频| 久久亚洲精品中文字幕冲田杏梨| 亚洲直播在线一区| 99视频精品| 亚洲精品专区| 亚洲欧洲一区二区三区在线观看 | 亚洲第一综合天堂另类专| 国产免费成人在线视频| 国产精品99一区二区| 欧美激情亚洲一区| 欧美a级理论片| 久久男女视频| 欧美高清不卡| 老司机精品视频网站| 久久精品人人做人人综合 | 亚洲欧洲一区二区在线播放| 久久中文字幕一区| 久久婷婷色综合| 久热精品视频| 久久综合伊人77777| 久久亚裔精品欧美| 性欧美暴力猛交69hd| 午夜国产欧美理论在线播放 | 老牛影视一区二区三区| 欧美一区观看| 久久精品亚洲热| 久久尤物视频| 欧美.com| 欧美精品一区二区精品网| 欧美成人精品在线| 欧美另类专区| 国产精品成人免费| 国产精品午夜国产小视频| 国产日韩欧美三级| 精品9999| 99精品99| 欧美专区在线观看| 亚洲国产精品一区二区三区| 亚洲精品日韩综合观看成人91| 亚洲美女啪啪|