[C] problème de #include
Résolu
Fabien
-
Fabien -
Fabien -
Bonjour!
J'ai besoin d'utiliser dans mon programme une fonction ... gsl_fit_linear( ... ) que j'ai trouvé dans le package GSL pour devc++.
Je pensais que faire un include du header ou est prototypée cette fonction (#include <gsl/gsl_fit.h> ) était suffisant pour avoir le droit d'utiliser cette fonction après.
Le #include<gsl/gsl_fit.h> à l'air de passer à la compilation car le compilateur ne dit pas que le fichier n'existe pas, mais lorsque j'appelle la fonction désirée, il me lance un
[linker error] undefined reference to gsl_fit_linear()
Il y a-t-il autre chose à faire pour linker les fichier? "tout reconstruire" n'a pas l'air d'aider.
Sinon je suppose queje peux copier-coller la fonction et la mettre au-dessous de mon main() si j'arrive à trouver où elle est définie.
Merci beaucoup!
J'ai besoin d'utiliser dans mon programme une fonction ... gsl_fit_linear( ... ) que j'ai trouvé dans le package GSL pour devc++.
Je pensais que faire un include du header ou est prototypée cette fonction (#include <gsl/gsl_fit.h> ) était suffisant pour avoir le droit d'utiliser cette fonction après.
Le #include<gsl/gsl_fit.h> à l'air de passer à la compilation car le compilateur ne dit pas que le fichier n'existe pas, mais lorsque j'appelle la fonction désirée, il me lance un
[linker error] undefined reference to gsl_fit_linear()
Il y a-t-il autre chose à faire pour linker les fichier? "tout reconstruire" n'a pas l'air d'aider.
Sinon je suppose queje peux copier-coller la fonction et la mettre au-dessous de mon main() si j'arrive à trouver où elle est définie.
Merci beaucoup!
Configuration: Windows XP Internet Explorer 6.0
A voir également:
- [C] problème de #include
- Include et headers en langage C ✓ - Forum C
- INCLUDE en html ✓ - Forum HTML
- [Latex] problème entre input et include ✓ - Forum Programmation
- Probleme php Include("") ✓ - Forum Webmastering
- Balise html INCLUDE ✓ - Forum HTML
2 réponses
A vrai dire je n'ai pas touché à la prog y a un bail (plus de 2 ans a peu près), mais il me semble qu'il y a quelques parts dans les config du soft l'endroit ou tu précises où chercher des "libs", "headers" et le reste. Voir peut-être la dedans.
Ou mettre gsl_fit.h dans le dossier du projet et faire un #include gsl_fit.h
Ou mettre gsl_fit.h dans le dossier du projet et faire un #include gsl_fit.h
Alors pour utiliser une librairie externe il faut trois choses :
1) l'emplacement des headers, pour que le #include passe (options -I ou -isystem). Là c'est ok apparemment. Par exemple si j'ai besoin des headers dans /usr/include/boost :
2) l'emplacement des binaires des librairies (option -L et -Wl,R) qui ne sont pas dans un répertoire standard. Par exemple si ma librairie (.so, .a, .dll...) est dans le répertoire ../stage/lib :
3) les binaires des librairies utilisées (.a, .so ou .dll). Par exemple si j'utilise ../stage/lib/libplop.so :
Dans ton cas c'est donc les points 2 et 3 qui te concernent (au moins le 2).
Bonne chance
1) l'emplacement des headers, pour que le #include passe (options -I ou -isystem). Là c'est ok apparemment. Par exemple si j'ai besoin des headers dans /usr/include/boost :
-I/usr/include/boost
2) l'emplacement des binaires des librairies (option -L et -Wl,R) qui ne sont pas dans un répertoire standard. Par exemple si ma librairie (.so, .a, .dll...) est dans le répertoire ../stage/lib :
-L../stage/lib -Wl,-R../stage/lib
3) les binaires des librairies utilisées (.a, .so ou .dll). Par exemple si j'utilise ../stage/lib/libplop.so :
-lplop
Dans ton cas c'est donc les points 2 et 3 qui te concernent (au moins le 2).
Bonne chance