Was bedeutet wildcard bedeutet im makefile?
Fand ich die folgenden Zeilen in einem makefile tutorial, aber ich habe einige Probleme mit den kühnen Linien.
In 1 Zeile, wenn ich Schreibe,
program_C_SRCS:=$(*.c)
funktioniert es nicht. Also bitte sagen Sie mir, was ist
Platzhalter-Wort zu tun hier. Ist dieses Wort spezifisch für das makefile nur?
Im tutorial geschrieben, dass die zweite Linie wird den test durchführen substitution. Kann mir jemand sagen etwas über diese text-substitution?
Bitte entschuldigen Sie mich, wenn Sie meine Fragen sind sehr grundlegend, weil ich bin neue zu machen filestuff.
CC:=g++
program_NAME:=myprogram
**program_C_SRCS:=$(wildcard *.c)** # 1 line
program_CXX_SRCS:=$(wildcard *.cc)
**program_C_OBJ:=$(program_C_SRCS:.c=.o)** # 2 line
program_CXX_OBJ:=$(program_CXX_SRCS:.c=.o)
program_OBJ:= $(program_C_OBJ) $(program_CXX_OBJ)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angenommen, Sie haben zwei Quell-Dateien.
foo.c
undbar.c
.Den
wildcard
Funktion ist die syntax. Die variableprogram_C_SRCS
wird nun der Wertfoo.c bar.c
(vielleicht nicht in dieser Reihenfolge).Dies ist ein substitution Referenz. Es wandelt text, das ersetzen eines Teilstrings durch einen anderen. Die variable
program_C_OBJ
hat jetzt den Wertfoo.o bar.o
.Die Verwendung von wildcard-card-Funktion in der make-Datei ist eine Liste mit allen Quell-Dateien mit einer bestimmten Erweiterung. Zum Beispiel:
Angenommen, wenn Sie konvertieren möchten
.c
Dateien zu.o
Dateien dann der folgenden syntax können hilfreich sein: