當前位置:
首頁 >
Makefile的伪目标
發布時間:2025/6/17
47
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Makefile的伪目标
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、Makefile偽目標的格式:
.PHONY : cleanclean:rm xxxx
?
?
?
2、Makefile偽目標的作用:
第一種情況:
如果我們需要書寫這樣的一個規則:規則所定義的命令不是去創建目標文件,而是通過make命令行明確指定它來執行一些特點的命令,就像例題中的clean。當文件夾中沒有clean這個文件的時候,我們輸入“make clean”能按照初衷執行,但是一旦文件夾中出現clean文件,我們再次輸入“make clean”,由于這個規則沒有任何依賴文件,所以目標被認為是最新的而不去執行規則所定義的命令。所以rm命令不會被執行。為了解決問題,我們將目標clean定義成偽目標。
clean:rm xxxx如果同一個目錄下有一個clean文件,那么 ?make clean的動作將不會執行rm動作;
所以,增加.PHONY偽目標的使用的話,就會忽略目錄下clean這個文件,直接執行rm動作;
?
?
第二種情況:
偽目標的另一種使用場合時在make的并行和遞歸執行過程中。
SUBDIRS=foo bar bazSubdirs:for dir in $(SUBDIRS)do$(MAKE) –C $$dirdone?
如果這樣寫,會出現幾個問題:
1、 當子目錄執行make出現錯誤,make不會退出;
2、 使用這種shell的循環方式時,沒有用到make對目錄的并行處理功能。
有了偽目標就可以解決上面的兩個問題。
SUBDIRS=foo bar baz.PHONY:subdirs $(SUBDIRS)subdirs: $(SUBDIRS)$(SUBDIRS):$(MAKE) –C $@其中subdirs模板表示要編譯多個子目錄中的工程。
轉載于:https://www.cnblogs.com/linhaostudy/p/7200629.html
總結
以上是生活随笔為你收集整理的Makefile的伪目标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进击的新版NavMesh系统:看我飞檐走
- 下一篇: Hibernate 一对一关联关系