6.Makefile自動化變量

      網(wǎng)友投稿 928 2022-05-29

      關(guān)于自動化變量可以理解為由 Makefile 自動產(chǎn)生的變量。在模式規(guī)則中,規(guī)則的目標(biāo)和依賴的文件名代表了一類的文件。規(guī)則的命令是對所有這一類文件的描述。我們在 Makefile 中描述規(guī)則時,依賴文件和目標(biāo)文件是變動的,顯然在命令中不能出現(xiàn)具體的文件名稱,否則模式規(guī)則將失去意義。

      那么模式規(guī)則命令中該如何表示文件呢?就需要使用“自動化變量”,自動化變量的取值根據(jù)執(zhí)行的規(guī)則來決定,取決于執(zhí)行規(guī)則的目標(biāo)文件和依賴文件。下面是對所有的自動化變量進(jìn)行的說明:

      下面我們就自動化變量的使用舉幾個例子。

      實例1:

      test:test.o test1.o test2.o

      gcc -o $@ $^

      test.o:test.c test.h

      gcc -o $@ $<

      test1.o:test1.c test1.h

      gcc -o $@ $<

      test2.o:test2.c test2.h

      gcc -o $@ $<

      這個規(guī)則模式中用到了 "$@" 、"$<" 和 "$^" 這三個自動化變量,對比之前寫的 Makefile 中的命令,我們可以發(fā)現(xiàn) "$@" 代表的是目標(biāo)文件test,“$^”代表的是依賴的文件,“$<”代表的是依賴文件中的第一個。我們在執(zhí)行 make 的時候,make 會自動識別命令中的自動化變量,并自動實現(xiàn)自動化變量中的值的替換,這個類似于編譯C語言文件的時候的預(yù)處理的作用。

      實例2:

      lib:test.o test1.o test2.o

      ar r $?

      假如我們要做一個庫文件,庫文件的制作依賴于這三個文件。當(dāng)修改了其中的某個依賴文件,在命令行執(zhí)行 make 命令,庫文件 "lib" 就會自動更新。"$?" 表示修改的文件。

      GNU make 中在這些變量中加入字符 "D" 或者 "F" 就形成了一系列變種的自動化變量,這些自動化變量可以對文件的名稱進(jìn)行操作。

      下面是一些詳細(xì)的描述:

      6.Makefile自動化變量

      Makefile

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:溫故Linux后端編程(二):進(jìn)程·全家桶
      下一篇:使用Javascript獲取地理位置(省市區(qū))的幾種方式
      相關(guān)文章
      亚洲精品久久久www| 亚洲高清无在码在线无弹窗| 亚洲高清不卡视频| 亚洲综合在线另类色区奇米| yy6080久久亚洲精品| 亚洲AV无码资源在线观看| 亚洲视频无码高清在线| 亚洲AV综合色区无码二区爱AV| 亚洲日本在线免费观看| 亚洲激情黄色小说| 亚洲国产亚洲综合在线尤物| 亚洲小说区图片区| 国产精品亚洲自在线播放页码| 亚洲成a人片在线观看精品| 色偷偷亚洲女人天堂观看欧| 亚洲va久久久久| 亚洲日本天堂在线| 亚洲丁香婷婷综合久久| 久久亚洲中文字幕无码| 亚洲VA综合VA国产产VA中| 亚洲国产婷婷香蕉久久久久久| 亚洲无码高清在线观看| 国产亚洲老熟女视频| 亚洲精品无码午夜福利中文字幕| 国产∨亚洲V天堂无码久久久| 亚洲av无码国产精品色午夜字幕| 久久综合日韩亚洲精品色| 亚洲av综合色区| 亚洲美女人黄网成人女| 亚洲妇女水蜜桃av网网站| 亚洲三级视频在线观看 | 色老板亚洲视频免在线观 | 亚洲日产韩国一二三四区| 国产亚洲精品资源在线26u| 亚洲另类激情综合偷自拍 | 亚洲永久中文字幕在线| 亚洲国产福利精品一区二区| 伊人久久五月丁香综合中文亚洲| 亚洲国产精品无码第一区二区三区 | 亚洲精品国产suv一区88| gogo全球高清大胆亚洲|