私の知らない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