Bonjour à tous,
J'ai regardé sur le forum et sur le net, et je n'ai trouvé aucune réponse précise à mon problème.
Je tourne sous Ubuntu. Je souhaite faire tourner un projet existant sur mon poste, en utilisant OpenSG, Qt et ODE.
Je suis entrain d'installer OpenSG avec les contribs pour activer ODE. J'ai pour cela téléchargé les sources de la version OpenSG 1.8, les sources des Contribs, et ODE.
J'ai compilé ODE sans soucis, le tout installé dans /usr/local/[include-lib].
J'ai par contre du mal à compiler OpenSG en incluant les physics. J'utilise le script configure, avec la commande suivante :
./configure --enable-gif --enable-glut --enable-jpg --enable-png --enable-tif --with-add-libdir=/usr/local/lib/ --with-add-lib=ode:ode
Cependant lorsque je fais un appel à make, j'obtiens la trace suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| cd Builds/i686-pc-linux-gnu* && make dbg
make[1]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++ »
make[2]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++ »
make[3]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/BaseLib »
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:43: Detected DBG
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:59: Detected Shared Lib
make[3]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/BaseLib »
make[3]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/SystemLib »
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:43: Detected DBG
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:59: Detected Shared Lib
make[3]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/SystemLib »
make[3]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/WindowXLib »
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:43: Detected DBG
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:59: Detected Shared Lib
make[3]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/WindowXLib »
make[3]: entrant dans le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/WindowGLUTLib »
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:43: Detected DBG
/home/koni/bin/OpenSG/Common/commonBuildDetect.mk:59: Detected Shared Lib
make[3]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++/WindowGLUTLib »
make[2]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++ »
make[1]: quittant le répertoire « /home/koni/bin/OpenSG/Builds/i686-pc-linux-gnu-g++ » |
On voit bien qu'il construit toutes les bibliothèques de OpenSG, mais rien pour les contribs.
J'ai par ailleurs essayé d'utiliser le script scons avec l'option
contrib_physics=/usr/local/lib/
Mais les librairies construites font planter l'application dés que l'on tente de compiler avec -lOSGContrib. Si je regarde la taille des .so créés par les deux méthodes, on voit des différences flagrantes de tailles (celles générées pas scons sont bien plus petites).
Je ne sais pas si je me suis bien expliqué, j'ai un peu la tête dedans et ai du mal à en sortir, voila trois jours que je suis dessus. Donc si vous avez des idées !!
Merci
Résolu :
Finalement j'ai complètement recompilé ODE
./configure & make & make install
Ensuite j'ai recompilé OpenSG en utilisant uniquement Scons
contrib_physics=/usr/local/lib/
J'ai exporté les librairies et les headers :
1 2
| sudo cp -r Build/linux-gcc/installed/include/OpenSG/ /usr/local/include/
sudo cp -r Build/linux-gcc/installed/lib/opt/*.so /usr/local/lib/ |
Ensuite, j'ai compilé mon appli, et comme avant, erreur à l'appel de osgInit :
ODE INTERNAL ERROR 1: assertion "g_bODEInitialized" failed in dCloseODE()
J'ai corrigé le soucis en ajoutant l'appel à la fonction d'initialisation de ODE :
1 2 3 4 5 6 7 8 9 10
| #include <ode/ode.h>
...
OSG_USING_NAMESPACE
int
main(int argc, char **argv) {
dInitODE();
osgInit(argc,argv);
...
} |
Et la tout marche bien ! J'espère que ça pourra aider quelqu'un.
Partager