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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Makefile的伪目标

發(fā)布時(shí)間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Makefile的伪目标 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、Makefile偽目標(biāo)的格式:

.PHONY : clean
clean:rm xxxx

?

?

?

2、Makefile偽目標(biāo)的作用:

第一種情況:

如果我們需要書寫這樣的一個(gè)規(guī)則:規(guī)則所定義的命令不是去創(chuàng)建目標(biāo)文件,而是通過(guò)make命令行明確指定它來(lái)執(zhí)行一些特點(diǎn)的命令,就像例題中的clean。當(dāng)文件夾中沒(méi)有clean這個(gè)文件的時(shí)候,我們輸入“make clean”能按照初衷執(zhí)行,但是一旦文件夾中出現(xiàn)clean文件,我們?cè)俅屋斎搿癿ake clean”,由于這個(gè)規(guī)則沒(méi)有任何依賴文件,所以目標(biāo)被認(rèn)為是最新的而不去執(zhí)行規(guī)則所定義的命令。所以rm命令不會(huì)被執(zhí)行。為了解決問(wèn)題,我們將目標(biāo)clean定義成偽目標(biāo)。

clean:rm xxxx

如果同一個(gè)目錄下有一個(gè)clean文件,那么 ?make clean的動(dòng)作將不會(huì)執(zhí)行rm動(dòng)作;

所以,增加.PHONY偽目標(biāo)的使用的話,就會(huì)忽略目錄下clean這個(gè)文件,直接執(zhí)行rm動(dòng)作;

?

?

第二種情況:

偽目標(biāo)的另一種使用場(chǎng)合時(shí)在make的并行和遞歸執(zhí)行過(guò)程中。

SUBDIRS=foo bar bazSubdirs:for dir in $(SUBDIRS)do$(MAKE) –C $$dirdone

?

如果這樣寫,會(huì)出現(xiàn)幾個(gè)問(wèn)題:

1、 當(dāng)子目錄執(zhí)行make出現(xiàn)錯(cuò)誤,make不會(huì)退出;

2、 使用這種shell的循環(huán)方式時(shí),沒(méi)有用到make對(duì)目錄的并行處理功能。

有了偽目標(biāo)就可以解決上面的兩個(gè)問(wèn)題。

SUBDIRS=foo bar baz.PHONY:subdirs $(SUBDIRS)subdirs: $(SUBDIRS)$(SUBDIRS):$(MAKE) –C $@

其中subdirs模板表示要編譯多個(gè)子目錄中的工程。

轉(zhuǎn)載于:https://www.cnblogs.com/linhaostudy/p/7200629.html

總結(jié)

以上是生活随笔為你收集整理的Makefile的伪目标的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。