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

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  2. 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
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  4. 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