Ich lese das Dokument von GNU Make. Hier ist ein BeispielVier Dollarzeichen in Makefile
% .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]$$$$
Ich habe versucht, dies auf einem C++ Programm, und bekam die Liste der Dateien
init3d.d init3d .d.18449 input.d input.d.18444 main.d main.d.18439
Hier ist, was ich gefunden habe, aber nicht Sie nderstand in den gleichen document
Wenn Sie sekundäre Erweiterung aktiviert und Sie möchten ein wörtliches Dollar-Zeichen in der Liste Voraussetzungen, müssen Sie tatsächlich vier Dollar-Zeichen schreiben (‚$$$$‘).
Ich frage mich, was die vier Dollarzeichen "$$$$" eigentlich bedeuten? Wie machen sie 18449, 18444 oder 18439?
Danke und Gruß!
Secondary Expansion nicht die Rezeptur Inhalt beeinflussen. Nur die Liste der Voraussetzungen. '$$$$ 'erzeugt also immer' $$ 'im Rezeptkontext. Sie brauchen nur '$$$$' in der Liste der Voraussetzungen, um ein einzelnes '$' zu erhalten, wenn die sekundäre Erweiterung aktiviert ist (wenn Sie nicht '$$' verwenden, erhalten Sie das). –
Dies ist nicht die Antwort. Die sekundäre Erweiterung ist irrelevant. – reinierpost
@reinierpost es scheint, du hast die gleichen Verständnis Schwierigkeiten wie Etan Reisner :) Das ursprüngliche Plakat sprach über sekundäre Erweiterung, deshalb habe ich darüber geschrieben. Die eigentliche Erklärung befindet sich im zweiten Absatz, und der wahrscheinlichste Grund für die Verwendung dieses Konstrukts ist der dritte Absatz in Klammern. –