2017-09-24 4 views
0

J'essaie de créer un makefile de base pour mon programme. Il ressemble à ceci:make: 'file' est à jour, suivi par rien à faire pour tout

all: example 
example: example.c 
    gcc -o example example.c 
clean: 
    rm example 

Si je purifiez ', puis entrez « faire », je reçois « faire: Rien à faire pour tous ».

Si je fais un léger changement à mon code source, enregistrez-le, puis lancez make, je reçois « exemple gcc -o example.c

Si j'entre « faire par exemple », je reçois » « exemple » est à jour. J'utilise des indentations, pas des espaces, avant 'gcc' et 'rm' dans le fichier make, et les retraits ne sont pas des espaces secrets. Je suis sûr que c'est quelque chose que je fais mal avec mon makefile, mais j'apprécierais un peu d'aide pour déterminer quelle erreur je fais. edit: programme modifié 'make clear' à 'make clean'

+3

Le comportement que vous avez décrit fonctionnait comme prévu. – timrau

+0

Vous pouvez essayer 'touch example.c; make example' pour vérifier s'il se comporte correctement quand example.c est changé. – timrau

+0

'make clair' et' make clear' ne sont pas la même chose. – Beta

Répondre

0

si vous entrez

make 

alors le 'exemple' sera généré.

puis, si vous entrez ensuite

make example 

rien ne se passera parce que le programme « exemple » est déjà fait et ses dépendances (« example.c ») horodatage n'a pas changé.