Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pb de compilation est programmation modulaire

    29 octobre 2019 à 10:38:43

    Bonjour, 

    Jai un pb dans mon code, je souhaiterai crer une fonction et l utiliser dans mon main en l'écrivant avec fprintf dans un nouveau fichier fonction.c et en incluant le header dans le fichier main.c

    Or lorsque j execute mon fichier le compilateur n'arrive pas a gérer la création de la fonction dans fonction.c et son appelle dans main.c

    Aidez moi svp, je suis perdue

    • Partager sur Facebook
    • Partager sur Twitter
      29 octobre 2019 à 10:43:35

      Salut,

      Il va nous falloir ton code. La c'est un peu flou.

      • Partager sur Facebook
      • Partager sur Twitter
        29 octobre 2019 à 11:39:09

        #include <stdio.h>
        #include <stdlib.h>
        #include "entete1.h"
        
        int main()
        {
        
        FILE* fichier2 = NULL;
        
        fichier2 = fopen("fonction1.c", "a");
        
        if(fichier2 != NULL)
        {
        
          fprintf(fichier2, "void hello()\n{\nprintf(\"Hello there\");\n}");
        
          fclose(fichier2);
        }
        else
        {
            printf("Impossible d'ouvrir le fichier entete1.h");
        }
        
        hello();
        return 0;
        }
        Voici mon code, code blocks m affiche "undefined reference to hello()"
        • Partager sur Facebook
        • Partager sur Twitter
          29 octobre 2019 à 11:54:54

          En effet, il n'existe pas de définition d'une fonction hello au moment de la compilation de ce programme.

          Par ailleurs, je ne suis pas sur que ça soit simple, pour CodeBlocks, de suivre un projet où une partie des fichiers source sont générés par des programmes du projet.

          En voyant ce qui suit, je me demande si tu n'es pas parti dans des idées bizarres

          fichier2 = fopen("fonction1.c", "a");
          //                =========== 
          if(fichier2 != NULL)
          {
            ...
          }
          else
          {
              printf("Impossible d'ouvrir le fichier entete1.h");
          //                                         =========
          }
           



          -
          Edité par michelbillaud 29 octobre 2019 à 11:59:15

          • Partager sur Facebook
          • Partager sur Twitter
            29 octobre 2019 à 12:21:14

            Ah oui non, ça c une erreur jai remplacé fonction1.c par entête.h, my bad

            Il n existe donc aucun moyen de compiler hello juste après sa création?

            • Partager sur Facebook
            • Partager sur Twitter
              29 octobre 2019 à 14:10:26

              Il ne peut pas être compilé avant d'avoir été créé, si on n'a pas réussi à faire tourner le programme qui fabrique son source.

              Pour moi ce genre de truc ça évoque les bibliothèques dynamiques générées/chargées à l'exécution,  mais je sais pas ce que toi tu veux faire en réalité, donc pour dire comment....

              -
              Edité par michelbillaud 29 octobre 2019 à 14:14:23

              • Partager sur Facebook
              • Partager sur Twitter

              Pb de compilation est programmation modulaire

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown