help: probleme de fonction .h en C - C - Programmation
Marsh Posté le 23-12-2004 à 11:49:22
La fonction doit être déclarée dans le .h, implémentée dans le .c, compilée dans un .o et ce .o filé en ligne de commande lors de la compialtino du main.c.
Marsh Posté le 23-12-2004 à 12:00:37
Je n'utilise pas gcc, mais dev-c++. J'ai pensé à la déclarer dans .h.
Mais si je vire le .h et la déclare dans le main, il n'en veut toujours pas.
Marsh Posté le 23-12-2004 à 12:08:33
En faite, ça veut dire quoi iobuf?
On peut faire passer un pointeur sur fichier en parametre de fonction?
Marsh Posté le 23-12-2004 à 13:04:23
blaise_laporte a écrit : Juste un p'tit probleme que je parviens pas à résoudre en C |
Inclure l'interface (.h), c'est bien, mais le compilateur (linker, en fait) ne va pas deviner où se trouve l'implémentation, puisqu'en C (contrairement à Ada ou Turbo Pascal), interface (.h) et implémentation (.c) sont dans des fichiers séparés.
Il faut donc ajouter l'implémentation au projet, et le linker (éditeur de lien) fera la colle qui va bien.
http://mapage.noos.fr/emdel/notes.htm#bibliotheque
http://mapage.noos.fr/emdel/codage [...] ser_source
http://mapage.noos.fr/emdel/codage.htm#organiser
Marsh Posté le 23-12-2004 à 11:43:17
Juste un p'tit probleme que je parviens pas à résoudre en C
Dans mon mail, j'inclus ma fonction .h conprenant la déclaration d'une fonction ouv_fichier.c . Dans le main, je fais appelle à cette fonction, et lors de la compilation, il me marque: [Linker error] undefined reference to `ouv_fichier(_iobuf)'
Je comprend pas vraiment, il me semble avoir tout faire pour que cette fonction soit incluse?
merci