Problème à la compilation: Utilisation de QD

[Résolu]
Signaler
Messages postés
31
Date d'inscription
samedi 22 avril 2006
Statut
Membre
Dernière intervention
18 avril 2011
-
Messages postés
31
Date d'inscription
samedi 22 avril 2006
Statut
Membre
Dernière intervention
18 avril 2011
-
Bonjour,

Rentrons directement dans le vif du sujet =) . J'ai besoin d'une grande précision pour certaines opérations. Il me faut une précision allant au delà du simple double ou long double.

J'ai par conséquent installé les bibliothèques qd.

L'installation se passe bien, mon compilateur c++: g++
j'utilises le compilateur fortran de gnu (gfortran 95)
et gcc pour le C.

./configure CXX=g++ CC=gcc FC=gfortran
sudo make
sudo make install

J'essaye ensuite de compiler un des exemples pour voir si tout se passe bien, et là c'est le drame.

 g++ qd_test.cpp

/tmp/cc95OHa0.o: In function `main':
qd_test.cpp:(.text+0x278): undefined reference to `fpu_fix_start'
qd_test.cpp:(.text+0x54d): undefined reference to `fpu_fix_end'
/tmp/cc95OHa0.o: In function `TestSuite<dd_real>::test6()':
qd_test.cpp:(.text._ZN9TestSuiteI7dd_realE5test6Ev[TestSuite<dd_real>::test6()]+0x42): undefined reference to `dd_real::_ndigits'

... etc...

Il semblerai q'il ne trouve aucune des fonctions utilisées par qd.

Pourtant tout semble correcte, les includes sont là ou il faut.

Je n'ai pas l'habitude de bosser avec du cpp. Faut-il une option de compilation spécifique?

Merci de votre attention.

Ordinateur : moyen conçu pour accélérer et automatiser les erreurs.

2 réponses

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
C'est normal.
Si la bibliothèque est dynamique (un .so), alors il faut la binder lorsque tu compiles.

Ex:
Soit la bibliotheque pouet qui porte le nom libpouet.so et soit ton qd_test.cpp.

Alors la ligne de compile devrait être:
g++ qd_test.cpp -lpouet -L.

Avec
-l le nom de la bibliothèque, sans le "lib" et sans le ".so".
-L le chemin vers le lieu ou se situe ta bibliothèque.

J'ajouterais aussi:
"g++ -W -Wall -Wextra -Wabi -Werror -O3 -pedantic qd_test.cpp -lpouet -L." en mode release
"g++ -W -Wall -Wextra -Wabi -g -pedantic qd_test.cpp -lpouet -L." en mode debug
Messages postés
31
Date d'inscription
samedi 22 avril 2006
Statut
Membre
Dernière intervention
18 avril 2011
1
Merci beaucoup de ton aide.

Problème résolu.

Ordinateur : moyen conçu pour accélérer et automatiser les erreurs.