私はGNU makeの新機能です。 NETALソフトウェアのMakefileプログラムを理解できませんでした(hereからダウンロードできます)。GNU Makefileでの変数の割り当て
フォルダNETALには、make.incやmake.headersなどの他のファイルを含むMakefileファイルがあります。 私はこれらを除いて、フォルダNETAL内のMakefileのルールのほとんどを理解します。$(何
16行目と22 $(LINK.o)$^$(LDLIBSを)$(OUTPUT_OPTION)
LINK.o)と$(OUTPUT_OPTION)は?私はこれらの変数の定義/割り当てをどこでも(make.incとmake.headersではなく)見つけることができません。
ライン26および30 $(COMPILE.c)$ < $(OUTPUT_OPTION)変数$(COMPILE.c)と
同じ問題。私はその任務をどこにでも見つけることができません。また、私は$ <の意味を理解していない(そしてなぜ "<"の前にドル記号 "$"を付けなければならないのか)。私は、ドル記号がPHPのように変数のためであることを知っています。
私は、マニュアル(RTFM、私が知っている)読んで自分自身をノックアウトしています:GNU make manual
そして、これが私の読書の結果であるが:前提条件の章4.3種類で、私は私が何と同様の例を見つけました探して:残念ながら
OBJDIR := objdir
OBJS := $(addprefix $(OBJDIR)/,foo.o bar.o baz.o)
$(OBJDIR)/%.o : %.c
$(COMPILE.c) $(OUTPUT_OPTION) $<
all: $(OBJS)
$(OBJS): | $(OBJDIR)
$(OBJDIR):
mkdir $(OBJDIR)
、 "$(COMPILE.c)"、 "$(OUTPUT_OPTION)"、および "$ <" であるかについて何の説明はありません。
誰かが私に理解しやすい方法でそれを説明することはできますか? 私はGoogleにさらにリンクできるようにリンク/キーワードを教えてください。
'make -pn |それらの変数が何に定義されているかを正確に見ることができます。 – user657267
GNU makeには、組み込みマクロとあらかじめ定義された暗黙ルールの大きなカタログがあります。これらはいくつかあります。それらをすべて見るには、 '-p'オプションを使ってルールデータベースを表示するようにmakeに依頼することができます。あなた自身のものではなく組み込みのマクロ/ルールを見たいだけなら、 'make -p -f/dev/null'(これはLinuxやMacOSのようなUNIXシステムを想定しています)を使うことができます。 – MadScientist
user657267&MadScientist:ありがとう! – izza