J'ai 3 fichiers: node.h, node.c et main.c Si le Makefile estgénéré automatiquement commande makefile
CFLAGS += -std=c99 -g -Wall
run: node
./node
node: node.o main.o
Puis, quand je lance make
, ces commandes sont exécutées
cc -std=c99 -g -Wall -c -o node.o node.c
cc -std=c99 -g -Wall -c -o main.o main.c
cc node.o main.o -o node
./node
Je suppose que les deux premières lignes sont générés en raison
- d'abord,
make
essayez d'exécuternode
mais il ne peut pas trouvernode
. - Ainsi,
make
détientrun
et va à la cible suivante, qui estnode
à la ligne 4. - Ensuite,
make
voit les dépendancesnode.o
etmain.o
. A cette époque, il sait qu'il doit créer des fichiers d'objetsnode.o
etmain.o
Cependant, je ne peux pas comprendre pourquoi la troisième commande est générée
cc node.o main.o -o node
Pour tenter d'explorer ce mystère, je constate que si node
à la ligne 2 est changé en node1
, une erreur se produit
CFLAGS += -std=c99 -g -Wall
run: node1
./node1
node1: node.o main.o
Nice. Mon instinct me dit qu'il doit y avoir des règles implicites, mais je ne peux pas trouver les documents. Je vous remercie. – cuongptnk