0 erreur , mais pas de compilation , pourquoi

johan -  
Timon1102 Messages postés 354 Statut Membre -
Bonsoir , j'ai le message d'erreur suivant en tapant make dans mon shell :

pas de règle pour fabriquer la cible main.c , nécessaire pour test . arrêt


#on utilise gcc comme compilateur par defaut
CC=gcc


#flags d'erreur
ERROR_CFLAGS = -Wall -W -pedantic


#on indique quelques drapeux passes au compilateur
CFLAGS=$(ERROR_FLAGS)


# Les flags  de link
LDFLAGS=$(ERROR_FLAGS)




#on construit le programme
all: test


#compilation des fichiers
test: main.c my_alphabet1.c
   gcc -W -Wall -pedantic -c main.c my_alphabet1.c
    gcc -W -Wall -pedantic -o test main.o my_alphabet1.o


#nettoyage...
clean:
   rm -f *.o *~ core test 



#include <stdio.h>
int my_alphabet1();
int main(void)

{

my_alphabet1();

return 0;

}



#include <stdio.h>

int my_alphabet1()
{

char c;

for ( c = 'a'; c <= 'z'; ++c)

putchar(c);

return int;

}

4 réponses

mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Si make te dis cça c'est qu'il ne trouve pas le fichier main.c dans le répertoire ou tu lances la compilation. En effet tu demandes pour la cible all (cible par défaut) :
#on construit le programme
all: test


#compilation des fichiers
test: main.c my_alphabet1.c
   gcc -W -Wall -pedantic -c main.c my_alphabet1.c
   gcc -W -Wall -pedantic -o test main.o my_alphabet1.o


Bonne chance
0
johan
 
mais c'est pas possible , le makefile , le main.c et le my_alphabet1.c sont dans le rep /home/johan/codes , c'est fou ce truc
0
mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
En suppposant que le main est dans main.c, essaye un makefile avec juste ça :

all: main.c my_alphabet1.c
   gcc -W -Wall -pedantic -c my_alphabet1.c
   gcc -W -Wall -pedantic -o test main.c my_alphabet1.o
0
Timon1102 Messages postés 354 Statut Membre 109
 
Peut etre que cela n'a rien à voir mais je ne saurais que trop te conseiller de ne pas appeler ton executable 'test'... c'est une commande qui existe déjà et ça peut poser un pb
0