私はGNU Makeの文書を読んでいます。ここでは例があるMakefileの4ドル記号
%の.D:%の.C
@set -e; rm -f [email protected]; \ $(CC) -M $(CPPFLAGS) $< > [email protected]$$$$; \ sed ’s,\($*\)\.o[ :]*,\1.o [email protected] : ,g’ < [email protected]$$$$ > [email protected]; \ rm -f [email protected]$$$$
私はC++プログラムでこれを試みたが、ファイルのリスト
init3d.d init3dを得ました.d.18449 input.d input.d.18444 main.d main.d.18439
ここに私が見つけたが、あなたはしないあなたは二次拡張を有効にしていると前提条件のリストにリテラルのドル記号を使用する場合はnderstand同じdocument
で、あなたは実際には4つのドル記号(「$$$$」)を記述する必要があります。
4ドル記号 "$$$$"が実際に何を意味するのだろうか?彼らはどのように18449、18444、または18439ですか?
ありがとうございました!
セカンダリ拡張レシピの内容には影響を与えません。ちょうど前提条件のリスト。ですから、 '$$$$'はレシピコンテキストで常に '$$'を生成します。セカンダリ展開がオンのとき( '$$ 'を使用していない場合)、それを得るためには、前提条件のリストに' $$$$ 'だけが必要です。 –
これは答えではありません。二次的な拡張は無関係です。 – reinierpost
@reinierpostそれはあなたがEtan Reisnerと同じ理解困難を抱えているようです:)元のポスターは二次的な拡張について話しました、それが私がそれについて書いた理由です。実際の説明は第2段落にあり、その構成を使用する最も一般的な理由は、括弧で囲まれた第3段落にあります。 –