Pb compilation programation modulaire
matt
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j 'aimerai trouver un moyen de compiler la fonction hello juste après sa création dans un fichier .c par fprintf
Mais en gros voici mon code et code blocks m affiche "undefined reference to hello()", la fonction hello ne semble ne pas s'être compilé avec le reste
Aidez moi svp
Mais en gros voici mon code et code blocks m affiche "undefined reference to hello()", la fonction hello ne semble ne pas s'être compilé avec le reste
Aidez moi svp
#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}"); //Ecriture de la fonction dans .c pour l'utiliser par la suite
fclose(fichier2);
}
else
{
printf("Impossible d'ouvrir le fichier fonction1.c");
}
hello();
return 0;
}
Configuration: Windows / Edge 18.18362
5 réponses
-
Bonjour,
Peut tu tester la fonction system("commande") que tu met just avant l'appel à hello() ?
exemple : system("gcc ton_fichier_avec_ton_main ton_fichier_avec_ton_Hello") je pense peut être à tord que tu utilise gcc pour compiler.
avant ça, je te conseil de mettre apres tes include de tes .h, le prototype de ta fonction hello() soit :
void hello();
tiens moi au jus
-
#include <stdio.h> #include <stdlib.h> #include "entete1.h" <bold>void hello();</bold> int main() { FILE* fichier2 = NULL; fichier2 = fopen("fonction1.c", "a"); if(fichier2 != NULL) { fprintf(fichier2, "void hello()\n{\nprintf(\"Hello there\");\n}"); //Ecriture de la fonction dans .c pour l'utiliser par la suite fclose(fichier2); } else { printf("Impossible d'ouvrir le fichier fonction1.c"); } <bold>system("gcc ton_fichier_avec_ton_main ton_fichier_avec_ton_Hello");</bold> hello(); return 0; }
-
Merci pour ta réponse mais je n'ai pas tres bien compris ce que je devais mettre dans system()??
-
J'ai bien fait comme tu m'a dit mais malheureusement je garde la même erreur :
"undefined reference to 'hello' " avec ce code#include <stdio.h> #include <stdlib.h> #include "entete1.h" void hello(); 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"); } system("gcc main.c fonction1.c"); hello(); return 0; } -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut matt,
Ton fichier ne sera créé qu'à l'exécution et non à la compilation du programme.
Or, tu as besoin de ce fichier au stade de la compilation.
Tu ne peux donc pas compiler ton programme.
Dal