Toujours sur le site d'OC à suivre le cours de C. Après avoir lu à plusieurs reprises je pense avoir bien saisi l'utilité et le fonctionnement de la programmation modulaire. Toutefois, impossible de compiler !!
main.c
#include <stdio.h>
#include "aire.h"
int main()
{
double resultat;
resultat = aireRectangle(10.0, 20.0);
printf("L'aire du rectangle est de %f\n", aireRectangle);
return 0;
}
Alors dans aire.h c'est seulement sa déclaration. La fonction elle se trouve dans aire.c (c'est sa définition).
Ce qui ce passe, c'est que tu ne compile probablement pas aire.c et que tu ne linkes pas le fichier résultant de la compilation pour produire l'exécutable.
La façon de procéder diffère selon les outils que tu utilises pour compiler.
Par exemple, si tu utilises Code::Blocks, il faut ajouter le fichier aire.c à ton projet : menu --> project --> Add Files...
Effectivement c'est que j'avais mis dans un premier temps j'ai oublié de le remettre, néanmoins mon erreur de compilation se trouve à la ligne 8 et de facto mon programme ne se lance pas
edit:
Oui j'ai lu ça aussi sur internet rouloude (j'utilise effectivement codeblocks) mais je ne savais pas si c'était ça le problème (et ni comment rajouter ces fichiers au projet !). De plus, je ne pensais vraiment pas étant donné que les fichiers main.c aire.c et aire.h étaient dans le même fichier...
Je trouve ça assez contre intuitif parce que tu avais raison ! Merci beaucoup
- Edité par JprefpasdireMemesicpastopsecret 3 février 2022 à 20:54:16
Bonjour, j'ai le même problème et je ne trouve pas la solution. Comment faire afin de compiler le fichier aire.c ainsi que de link cela au fichier main.c sous visual studio code ? J'ai vérifié et de ce que je comprends mes fichiers sont tous au sein du même projet mais je ne suis pas sur de cela, comment le vérifier ? Merci d'avance
Vois-tu les fichiers dans l’arborescence du Projet ?
...
[Débutant] Undefined refence to (ma fonction)
× 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.
Regards,
Bernede Maximilien