2011-06-08 17 views
30

Duplicar posibles:
Makefile variable assignment: = vs = en macros maquillaje

Sólo sé sintaxis muy básica makefile, y estaba leyendo a través de otro proyecto de makefile y encontré := para la declaración de macro . ¿Por qué iban a usar eso?

En otras palabras, ¿hay alguna diferencia entre

MYMACRO = hi i'm a macro 

y

MYMACRO := hi i'm a macro 

?

+0

La diferencia es enorme y fundamental. Consulte el manual de fabricación (escriba 'info make' en su terminal) para obtener información. –

+2

http://stackoverflow.com/questions/448910/makefile-variable-assignment – cnicutar

+0

ver en particular http://www.gnu.org/software/make/manual/make.html#Flavors –

Respuesta

45

Las variables definidas con := en GNU make se expanden cuando se definen en lugar de cuando se usan.

+7

¿Podría explicar algo más, qué invoca "expandir"? – rubo77

+0

@ rubo77 * Expandir * significa reemplazar '$ variable' por su' valor'. Vea aquí para más detalles http://stackoverflow.com/a/30215530/5016540 – thangdc94

+0

Un ejemplo sería beneficioso. Encontré que la respuesta vinculada en el "duplicado" era un poco más explicativa. –