Clairement, vu son inconsistence, l'indentation dans ton Makefile n'est pas bonne...
La définition de ta variable CC est certes correcte mais ne suit pas vraiment les best practices en la matière: le -Wall -Werror -std=gnu99 doit être setté dans la variable CFLAGS.
Pour la cible all tu as $(CC) -o main.o [...] ce qui va écraser ton fichier objet et le remplacer par le résultat du link... je ne suis pas sûr que c'est ce que tu souhaites vraiment. Ce qui se fait généralement c'est plutôt un -o main (pas d'extension pour les executables sous Linux...)
En l'état, toutes tes target pour les fichiers en .o sont inutiles car déjà connues explicitement par ̀ make. Pire que ça, en forçant ces règles explicitement, tu supprimes des eventuels(CFLAGS) définis par l'environnement (ou que tu aurais potentiellement définis plus haut ... plutôt que dans `(CC) ;-p)
[^] # Re: pas main.o
Posté par LaBienPensanceMaTuer . En réponse au message Problème d'éxecution de fichier. Évalué à 4.
Ton makefile semble avoir quelques erreurs:
Clairement, vu son inconsistence, l'indentation dans ton Makefile n'est pas bonne...
La définition de ta variable
CCest certes correcte mais ne suit pas vraiment les best practices en la matière: le-Wall -Werror -std=gnu99doit être setté dans la variableCFLAGS.Pour la cible
alltu as$(CC) -o main.o [...]ce qui va écraser ton fichier objet et le remplacer par le résultat du link... je ne suis pas sûr que c'est ce que tu souhaites vraiment. Ce qui se fait généralement c'est plutôt un-o main(pas d'extension pour les executables sous Linux...)En l'état, toutes tes target pour les fichiers en .o sont inutiles car déjà connues explicitement par ̀ make
. Pire que ça, en forçant ces règles explicitement, tu supprimes des eventuels(CFLAGS) définis par l'environnement (ou que tu aurais potentiellement définis plus haut ... plutôt que dans `(CC) ;-p)Outre ces erreurs, il y aurait quelques optimisations possibles grâce aux variables implictes de GNU Make.
Par exemple, tu peux remplacer ton énumération de .o ligne 4 par un bête
$^(voir https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html)Bon courage !