Estoy leyendo el documento de GNU Make. Este es un ejemploCuatro signos de dólar en 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]$$$$
He intentado esto en un programa en C++, y tengo la lista de archivos
init3d.d init3d .d.18449 input.d input.d.18444 main.d main.d.18439
Esto es lo que encontré, pero no lo hacen nderstand en la misma document
Si ha activado la expansión secundaria y desea un signo de dólar literal en la lista de requisitos previos, se debe escribir en realidad cuatro signos de dólar (‘$$$$’).
Me pregunto qué significan los cuatro signos de dólar "$$$$" en realidad? ¿Cómo son ellos 18449, 18444 o 18439?
¡Gracias y saludos!
expansión secundaria no afecta a los contenidos de la receta. Solo la lista de requisitos previos. Entonces '$$$$' siempre producirá '$$' en el contexto de la receta. Solo necesita '$$$$' en la lista de requisitos previos para obtener un solo '$' cuando la expansión secundaria está activada (cuando no está usando '$$' obtendrá eso). –
Esta no es la respuesta. La expansión secundaria es irrelevante. – reinierpost
@reinierpost parece que tienes las mismas dificultades de comprensión que Etan Reisner :) El cartel original hablaba de expansión secundaria, por eso escribí sobre él. La explicación real está en el segundo párrafo, y la razón más probable para usar esa construcción está en el tercer párrafo entre paréntesis. –