私の知らないMakefileの文法

1580 ワード


質問1:$(CC)-c$^-o$(ROOT_DIR)/$(OBJS_DIR)/$@ここの$^と$@はどういう意味ですか?
検索すると、この特殊な記号の使い方は次のとおりです.
もし:all:library.cpp main.cppの3つの記号は以下の意味を表しますか?
  • $@  evaluates to  all
  • $<  evaluates to  library.cpp
  • $^  evaluates to  library.cpp main.cpp

  • 質問2:CUR_SOURCE=${wildcard*.c}この言葉の意味は? 
    「$(wildcard*.c)」を使用して、作業ディレクトリの下のすべてを取得します.cファイルリスト.複雑な使い方;「$(patsubst%.c,%$(wildcard*.c)」を使用する、まず「wildcard」関数を使用して作業ディレクトリの下を取得できます.cファイルリスト;その後、リスト内のすべてのファイル名の接尾辞が表示されます.c置換は.o.これにより、現在のディレクトリで生成可能なものを得ることができる.oファイルリスト.
     
    質問3:VCODECでVOLT=1.6 Vの場合、VCODEC_STEM:=$(subst.,P,$(VCODEC_VOLT))ここのVCODEC_STEMはいくらですか?
    まずsubstを見てみましょう.どういう意味ですか.
    $(subst <from>,,) 
      :       ——subst。
      :     <from>      。
      :             。
      :
    $(subst ee,EE,feet on the street)
     “feet on the street”  “ee”   “EE”,     “fEEt on the strEEt”。

    substは文字列処理命令であることがわかり、VCODEC_をVOLT=1.6 Vの小数点をPに置き換えると、VCODEC_になりますSTEM=1P6V.
    よく本を読んでよく理解しないで、この習慣はよくなくて、思考の訓練の厳格さを要して、少しもまじめに行わなければなりません.
    makefileのものについては、後で深く分析しなければなりません.
    参照ドキュメント:
    1. https://wiki.ubuntu.com.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile:%E4%BD%BF%E7%94%A8%E5%87%BD%E6%95%B0
    2. https://www.cnblogs.com/Shirlies/p/4282182.html