Compilation

Bonsoir , je viens de créer un programme en C qui affiche l'alphabet , le programme est composé de 2 fichiers , un main.c , et un my_alphabet1.c :

#include <stdio.h>

int main(void)

{

my_alphabet1()

return 0;

}


et :

int my_alphabet1()

{

char c;

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

putchar(c);

}


pour les compiler ensemble , je dois faire un makefile , je veux que les fichiers compilent normalement ensemble , sans complication , comment réaliser ceci ? merci de votre aide .

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonsoir,

    Voilà un lien où ils expliquent comment créer un makefile :
    http://gl.developpez.com/tutoriel/outil/makefile/

    Par contre, il faut déclarer ta fonction my_alphabet1() pour le main, autrement il ne la trouvera pas.
    Soit tu la déclares en extern au début du fichier main.c.
    Soit tu crées un fichier my_alphabet1.h dans lequel tu déclares ta fonction my_alphabet1() et tu inclues cet header dans ton main.c.

    Bon courage.
    1. merci , j'ai été voir le tuto sur developpez depuis longtemps mais je le trouve mal fait , je n'y comprends rien , après l'avoir relu moi je suis incapable de faire mon makefile ...
      1. qui peut m'aider à faire le makefile de ces 2 fichiers svp , je comprends vraiment pas les makefile ...
        1. ?
          1. Bonsoir,

            Vu que y'a pas beaucoup de candidats, je vais essayer de t'aider.
            Tout d'abord, quel est le compilateur et l'OS que tu utilises ?
        2. la je te file un makefile que tu pourras exploiter si tu ne comprends pas certaines lignes fais le savoir ok.bon courage!
          NAME = (choix libre d'un nom de fichier)

          SRC = (noms de tes fichiers separes d'un espace)

          OBJ = $(SRC:.c=.o)

          RM = rm -f

          all : $(NAME)

          $(NAME): $(OBJ)
          cc $(OBJ) -o $(NAME)

          clean:
          $(RM) *~ \#*
          $(RM) $(OBJ)

          fclean: clean
          $(RM) $(NAME)

          re: fclean all
          1. non mais moi en fait à partir de ma phrase en français je veux savoir construire mon makefile , là je ne comprends pas ce que tu marques , dans ma tete j'ai cette phrase :

            je veux que mes 2 fichiers sont compilés avec le compilateur gcc , tout simplement , je veux rien d'autres , car là je pige rien du tout à toutes vos écritures , j'ai pas besoin de 50 options , je veux juste compilés 2 fichiers ensemble .
            1. Bonsoir,

              Si tu veux simplement compiler tes fichiers, essayes ces commandes :
              Pour compiler un fichier :
              gcc -c -Wall fichier.c

              Pour compiler 2 fichiers et créer l'exécutable :
              gcc -o prog -Wall main.c my_alphabet1.c

              avec prog = exécutable généré.
              Bon courage.
          2. slt
            pour le makefile tu crée un fichier dans le mm repertoire tu le donne le nom"makefile"
            dans ce fichier tu met:
            tout les parties fonctions et fichiers "le pb que j'ai oublier la structure exacte"
            la compilation gcc -c makefile ton exercice.c
            1. slt
              pour le makefile tu crée un fichier dans le mm repertoire tu le donne le nom"makefile"
              dans ce fichier tu met:
              tout les parties fonctions et fichiers "le pb que j'ai oublier la structure exacte"
              la compilation gcc -c makefile ton exercice.c