Compréhension simple de Makefile 3

Compréhension simple de Makefile 3

Les variables peuvent être utilisées pour définir la valeur des variables. Il existe quatre manières dans le Makefile:
1. Utilisez l'opérateur '='

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

Exécution: make -s all
Sortie: le
programme she vous assigne la valeur de la variable me, et la valeur de la variable me est la valeur de la variable he, et la valeur de he est elle, donc la valeur de la variable tu es elle.
Les valeurs des variables dans le Makefile peuvent être définies à l'aide des variables suivantes. Mais c'est dangereux, par exemple:
a = $ (b)
b = $ (a)
tombera dans le processus d'affectation de variables infinies.

2. Utilisez l'opérateur ': ='
pour définir de cette manière, la variable précédente ne peut pas utiliser cette dernière variable, seule la variable qui a été définie auparavant peut être utilisée. Si vous utilisez la variable précédemment non définie,
la valeur est vide, par exemple:
y: = $ (x) me
x: = vous
tous:
echo $ (y)

Exécution: make -s all
Output: me (Remarque: si l'invite "missing separator" est demandée, le code est inférieur à la clé)
Puisque la variable x n'est pas définie, c'est une valeur nulle, et seul moi est sorti. Plus tard, x vous a été attribué, mais y a déjà été attribué.

3. Utilisez l'opérateur '? ='.
Si la variable n'a pas été définie auparavant, la valeur de la variable est définie à ce moment. Si la valeur de la variable a déjà été définie, l'instruction d'affectation ne fait rien pour le moment.
Par exemple:
a: = bonjour
b? = Monde
a? = BONJOUR
tous:
echo $ (a)
echo $ (b)

Exécution: make -s all
output: hello
world,
car la valeur de a a été assignée à hello avant, après: a? = HELLO n'affectera plus de valeur à la variable a, donc a garde la valeur de hello.

4. Ajouter la valeur de la variable

Puisque la variable dans le Makefile est essentiellement une chaîne, la valeur de la variable peut être ajoutée avec l'opérateur '+ ='. Par exemple:
objets: = main.o foo.o
objets + = autre.o Le résultat est:
objets: = main.o foo.o autre.o

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46259642/article/details/113567864
conseillé
Classement