Sto leggendo il documento di GNU Make. Ecco un esempioQuattro segni di dollaro nel 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]$$$$
ho provato questo su un programma C++, ed ha ottenuto l'elenco dei file
init3d.d init3d .d.18449 input.d input.d.18444 main.d main.d.18439
Ecco quello che ho trovato, ma non do u nderstand nella stessa document
Se è stata attivata l'espansione secondaria e si desidera il simbolo del dollaro letterale nella lista prerequisiti, si deve effettivamente scrivere quattro segni di dollaro (‘$$$$’).
Mi chiedo cosa significano in realtà i quattro dollari "$$$$"? Come fanno 18449, 18444 o 18439?
Grazie e saluti!
espansione secondaria non influisce sui contenuti ricetta. Solo la lista dei prerequisiti. Quindi '$$$$' produrrà sempre '$$' nel contesto della ricetta. Hai solo bisogno di '$$$$' nella lista dei prerequisiti per ottenere un singolo' $ 'quando l'espansione secondaria è attiva (quando non si usa' $$ 'questo ti darà la possibilità). –
Questa non è la risposta. L'espansione secondaria è irrilevante. – reinierpost
@reinierpost sembra che tu abbia le stesse difficoltà di comprensione di Etan Reisner :) Il poster originale parlava di espansione secondaria, ecco perché ne ho scritto. La spiegazione effettiva è nel secondo paragrafo e la ragione più probabile per usare quel costrutto è nel terzo paragrafo tra parentesi. –