Makefile中的目標


Makefile中的目標

一般目標

  • 目標就是我們需要的最終文件,也是make的最終輸出  
  • Makefile的運行機制是:先將目標當成文件,查看文件是否存在,如果存在且是最新,那么直接結束,如果文件不存在,那么根據依賴和命令生成目標。

 

偽目標

  • 偽目標也是目標
  • 偽目標是一種特殊的目標,有其特殊性
  • 偽目標的特殊性:偽目標不會當成文件來判斷,只是一個標簽
  • 偽目標同樣可以有依賴,這樣make偽目標時就是先make依賴,然后運行規則
  • 作用:偽目標每次都會更新
  • 格式:.PHONY : xxx
  • 例子:
.PHONY : clean
#只要有這個聲明,不管是否有“clean”文件,要運行“clean”這個目標,只有“make clean”

  

多目標

  • Makefile 的規則中的目標可以不止一個,其支持多目標,有可能我們的多個目標同時依賴 於一個文件,並且其生成的命令大體類似
bigoutput littleoutput : text.g 
	generate text.g -$(subst output,,$@) > $@
#等價於
bigoutput : text.g 
	generate text.g -big > bigoutput 
littleoutput : text.g
	generate text.g -little > littleoutput 

  

相同目標

  • 多條規則目標相同,稱為相同目標
  • Makefile的處理規則:如果多條規則中只有一條規則有命令,那么直接合並成一條規則,目標不變,依賴疊加;如果有多條規則有命令,那么后面的規則會覆蓋前面的規則,且會爆告警
  • Makefile中的自動頭文件依賴就是利用目標相同時,規則合並的技術實現
target1: dep1
target1: dep2
    cmd2

#合並后

target1: dep1 dep2
    cmd2
target1: dep1
    cmd1
target1: dep2
    cmd2

#合並后

target1: dep2
    cmd2

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM