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

六、多目標(biāo)

Makefile的規(guī)則中的目標(biāo)可以不止一個,其支持多目標(biāo),有可能我們的多個目標(biāo)同時依賴于一個文件,并且其生成的命令大體類似。于是我們就能把其合并起來。當(dāng)然,多個目標(biāo)的生成規(guī)則的執(zhí)行命令是同一個,這可能會可我們帶來麻煩,不過好在我們的可以使用一個自動化變量“$@”(關(guān)于自動化變量,將在后面講述),這個變量表示著目前規(guī)則中所有的目標(biāo)的集合,這樣說可能很抽象,還是看一個例子吧。

    bigoutput littleoutput : text.g
            generate text.g -$(subst output,,$@) >; $@

    上述規(guī)則等價于:

    bigoutput : text.g
            generate text.g -big >; bigoutput
    littleoutput : text.g
            generate text.g -little >; littleoutput

    其中,-$(subst output,,$@)中的“$”表示執(zhí)行一個Makefile的函數(shù),函數(shù)名為subst,后面的為參數(shù)。關(guān)于函數(shù),將在后面講述。這里的這個函數(shù)是截取字符串的意思,“$@”表示目標(biāo)的集合,就像一個數(shù)組,“$@”依次取出目標(biāo),并執(zhí)于命令。


七、靜態(tài)模式

靜態(tài)模式可以更加容易地定義多目標(biāo)的規(guī)則,可以讓我們的規(guī)則變得更加的有彈性和靈活。我們還是先來看一下語法:

    <targets ...>;: <target-pattern>;: <prereq-patterns ...>;
            <commands>;
            ...


    targets定義了一系列的目標(biāo)文件,可以有通配符。是目標(biāo)的一個集合。

    target-parrtern是指明了targets的模式,也就是的目標(biāo)集模式。

    prereq-parrterns是目標(biāo)的依賴模式,它對target-parrtern形成的模式再進行一次依賴目標(biāo)的定義。

這樣描述這三個東西,可能還是沒有說清楚,還是舉個例子來說明一下吧。如果我們的<target-parrtern>;定義成“%.o”,意思是我們的<target>;集合中都是以“.o”結(jié)尾的,而如果我們的<prereq-parrterns>;定義成“%.c”,意思是對<target-parrtern>;所形成的目標(biāo)集進行二次定義,其計算方法是,取<target-parrtern>;模式中的“%”(也就是去掉了[.o]這個結(jié)尾),并為其加上[.c]這個結(jié)尾,形成的新集合。

所以,我們的“目標(biāo)模式”或是“依賴模式”中都應(yīng)該有“%”這個字符,如果你的文件名中有“%”那么你可以使用反斜杠“\”進行轉(zhuǎn)義,來標(biāo)明真實的“%”字符。

看一個例子:

    objects = foo.o bar.o

    all: $(objects)

    $(objects): %.o: %.c
            $(CC) -c $(CFLAGS) $< -o $@


上面的例子中,指明了我們的目標(biāo)從$object中獲取,“%.o”表明要所有以“.o”結(jié)尾的目標(biāo),也就是“foo.o bar.o”,也就是變量$object集合的模式,而依賴模式“%.c”則取模式“%.o”的“%”,也就是“foo bar”,并為其加下“.c”的后綴,于是,我們的依賴目標(biāo)就是“foo.c bar.c”。而命令中的“$<”和“$@”則是自動化變量,“$<”表示所有的依賴目標(biāo)集(也就是“foo.c bar.c”),“$@”表示目標(biāo)集(也就是“foo.o bar.o”)。于是,上面的規(guī)則展開后等價于下面的規(guī)則:

    foo.o : foo.c
            $(CC) -c $(CFLAGS) foo.c -o foo.o
    bar.o : bar.c
            $(CC) -c $(CFLAGS) bar.c -o bar.o

試想,如果我們的“%.o”有幾百個,那種我們只要用這種很簡單的“靜態(tài)模式規(guī)則”就可以寫完一堆規(guī)則,實在是太有效率了。“靜態(tài)模式規(guī)則”的用法很靈活,如果用得好,那會一個很強大的功能。再看一個例子:


    files = foo.elc bar.o lose.o

    $(filter %.o,$(files)): %.o: %.c
            $(CC) -c $(CFLAGS) $< -o $@
    $(filter %.elc,$(files)): %.elc: %.el
            emacs -f batch-byte-compile $<


$(filter %.o,$(files))表示調(diào)用Makefile的filter函數(shù),過濾“$filter”集,只要其中模式為“%.o”的內(nèi)容。其的它內(nèi)容,我就不用多說了吧。這個例字展示了Makefile中更大的彈性。
Posted on 2007-04-17 11:00 艾凡赫 閱讀(3399) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            午夜精品视频网站| 在线观看视频一区| 亚洲视频一区二区在线观看| 羞羞漫画18久久大片| 亚洲人成在线观看一区二区| 久久都是精品| 欧美一区二视频在线免费观看| 欧美激情久久久久| 久久免费午夜影院| 亚洲国产mv| 老司机精品视频网站| 欧美日韩在线第一页| 亚洲网在线观看| 亚洲美女av网站| 99视频超级精品| 久久久久国产精品一区三寸| 亚洲黄一区二区三区| 亚洲人成网站777色婷婷| 蜜臀av在线播放一区二区三区| 国产精自产拍久久久久久蜜 | 亚洲桃花岛网站| 午夜精品网站| 亚洲在线播放| 亚洲大片在线| 久久精品99久久香蕉国产色戒| 亚洲人成77777在线观看网| 亚洲视频一区| 欧美成人a∨高清免费观看| 亚洲在线观看| 久久久九九九九| 久久性天堂网| 伊人春色精品| 亚洲第一精品在线| 国产精品亚洲第一区在线暖暖韩国| 亚洲人体影院| 国产精品一区二区久久| 性色av一区二区三区| 欧美国产丝袜视频| 一区二区三区高清不卡| 国产一区二区三区免费不卡| 欧美成熟视频| 欧美在线观看网站| 亚洲国产综合在线| 欧美激情a∨在线视频播放| 亚洲激情小视频| 午夜亚洲激情| 欧美不卡视频| 欧美日韩亚洲高清一区二区| 中日韩高清电影网| 欧美激情视频给我| 久久免费国产精品| 久久久久久穴| 欧美一区视频| 欧美一区在线看| 亚洲人成毛片在线播放| 美女精品在线观看| 久久精品免费看| 亚洲精品在线观看免费| 亚洲国产精品一区二区第四页av | 欧美日韩亚洲视频一区| 久久久水蜜桃| 一区二区免费在线观看| 99精品欧美一区二区三区综合在线| 亚洲成人自拍视频| 欧美成人久久| 亚洲欧洲三级电影| 日韩一级片网址| 亚欧成人在线| 久久精品1区| 欧美风情在线观看| 国产精品久久影院| 好看不卡的中文字幕| 91久久夜色精品国产网站| 99re亚洲国产精品| 欧美性视频网站| 久久成人免费| 欧美视频官网| 在线观看成人av| 国产在线播精品第三| 亚洲精品免费网站| 欧美综合激情网| 亚洲免费视频网站| 午夜天堂精品久久久久| 最新国产精品拍自在线播放| 久久精品一区二区国产| 国产精品第2页| 夜夜躁日日躁狠狠久久88av| 亚洲第一福利视频| 欧美 亚欧 日韩视频在线| 亚洲国产精品久久久久久女王| 久久久精品国产一区二区三区| 亚洲欧美高清| 国产婷婷色一区二区三区| 久久激情五月婷婷| 欧美少妇一区| 久久中文精品| 亚洲欧洲日产国产网站| 亚洲国产老妈| 欧美日韩精品久久| 亚洲欧美视频在线观看| 亚洲欧美日韩国产一区二区| 国产一区久久| 亚洲精品中文字| 国产欧美精品在线观看| 亚洲国产99精品国自产| 欧美日韩一级视频| 香蕉成人久久| 久久久久女教师免费一区| 一本色道久久综合狠狠躁的推荐| 亚洲永久免费精品| 日韩天堂在线视频| 久久精品午夜| 亚洲欧美日韩专区| 美国十次了思思久久精品导航| 一本色道久久综合亚洲精品不 | 欧美午夜宅男影院在线观看| 午夜欧美电影在线观看| 欧美日韩成人一区二区三区| 欧美日韩视频免费播放| 亚洲无限乱码一二三四麻| 国产精品久久久久婷婷| 国产日韩欧美综合| 亚洲午夜一级| 亚洲综合精品四区| 欧美激情综合色| 亚洲国产成人精品视频| 激情欧美一区| 欧美福利在线| 亚洲国产一区在线观看| 亚洲国产精品va在看黑人| 久久综合亚州| 久久久久久穴| 欧美视频国产精品| 亚洲视频第一页| 性亚洲最疯狂xxxx高清| 国产色综合网| 欧美国产免费| 亚洲女同在线| 久久精品久久综合| 久久久www成人免费精品| 老司机成人网| 久久噜噜亚洲综合| 亚洲第一久久影院| 亚洲国产老妈| 欧美日韩免费高清一区色橹橹| 亚洲午夜久久久久久尤物| 亚洲高清电影| 老牛国产精品一区的观看方式| 中日韩高清电影网| 在线观看亚洲精品视频| 欧美三区在线视频| 久久女同互慰一区二区三区| 99在线精品视频| 欧美一区二区三区免费在线看 | 一本色道久久| 免费黄网站欧美| 亚洲自拍三区| 亚洲激精日韩激精欧美精品| 国产主播一区二区三区四区| 欧美全黄视频| 欧美自拍偷拍午夜视频| 亚洲精品一区二区在线观看| 女人香蕉久久**毛片精品| 久久久精品免费视频| 久久久一二三| 久久影视三级福利片| 久久久之久亚州精品露出| 久久99伊人| 久久久精品国产一区二区三区| 欧美亚洲综合另类| 亚洲欧美在线磁力| 性欧美大战久久久久久久久| 久久亚洲一区| 欧美成人免费全部| 国产欧美亚洲精品| 亚洲黄色大片| 午夜精品一区二区三区在线播放| 久久精精品视频| 亚洲国产你懂的| 香蕉久久夜色精品国产| 欧美无砖砖区免费| 一本到高清视频免费精品| 欧美3dxxxxhd| 久久久天天操| 在线观看成人av| 亚洲欧美精品一区| 欧美在线视频在线播放完整版免费观看 | 国产精品国产三级国产普通话三级 | 免费观看成人| 亚洲二区免费| 亚洲精品免费在线| 亚洲特级毛片| 欧美日韩伦理在线免费| 亚洲人精品午夜在线观看| 久久综合给合| 国产精品日本一区二区| 亚洲日本成人在线观看| 久久精品国产综合精品| 久久麻豆一区二区| 欧美在线地址|