Comprensión simple de Makefile 3

Comprensión simple de Makefile 3

Las variables se pueden usar para definir el valor de las variables. Hay cuatro formas en el Makefile:
1. Use el operador '='

/*Makefile程序*/
you = $(me)
me = $(he)
he = she
all:
	echo $(you)
/*END*/

Ejecución: make -s all
Salida: el
programa ella te asigna el valor de la variable me, y el valor de la variable me es el valor de la variable él, y el valor de él es ella, entonces el valor de la variable tu eres ella
Los valores de las variables en el Makefile se pueden definir utilizando las siguientes variables. Pero esto es peligroso, por ejemplo:
a = $ (b)
b = $ (a)
caerá en el proceso de asignación de variables infinitas.

2. Use el operador ': ='
para definir de esta manera, la variable anterior no puede usar la última variable, solo se puede usar la variable que se ha definido antes. Si usa la variable no definida anteriormente,
el valor está vacío, por ejemplo:
y: = $ (x) me
x: =
todos ustedes :
echo $ (y)

Ejecución: make -s all
Salida: me (Nota: si se solicita el mensaje "separador faltante", el código es menor que la clave)
Dado que la variable x no está definida, es un valor nulo y solo se muestra me. Posteriormente se le asignó x, pero ya se asignó y.

3. Utilice el operador '? ='.
Si la variable no se ha definido antes, el valor de la variable se define en este momento. Si el valor de la variable ya se ha definido, la instrucción de asignación no hace nada en este momento.
Por ejemplo:
a: = hola
b? = Mundo
a? = HOLA a
todos:
echo $ (a)
echo $ (b)

Ejecución: hace -s todo
salida: hola
mundo,
porque el valor de a se asignó a hola antes, después: a? = HELLO ya no asignará un valor a la variable a, por lo que a mantiene el valor de hola.

4. Agregar valor de variable

Dado que la variable en el Makefile es esencialmente una cadena, el valor de la variable se puede agregar con el operador '+ ='. Por ejemplo:
objetos: = main.o foo.o
objetos + = otro.o El resultado es:
objetos: = main.o foo.o otro.o

Supongo que te gusta

Origin blog.csdn.net/weixin_46259642/article/details/113567864
Recomendado
Clasificación