[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!
A voir également:
- [C] problème de #include
- PHP et les directives include() et require() - Forum PHP
- PHP: fonction include et liens relatifs ✓ - Forum PHP
- Include un dossier DropBox dans une page web - Forum Webmastering
- Installer integrity check has failed common causes include incomplete download and damaged media ✓ - Forum Logiciels
- I'm sorry to have to inform you that your message could not be delivered to one or more recipients. it's attached below. for further assistance, please send mail to postmaster. if you do so, please include this problem report. you can delete your own text from the attached returned message. - Forum Réseaux sociaux
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