GCC et conflits entre libstdc++.so.5 et 6
Bonjour,
tout d'abord, je ne sais pas ou poster, ma question etant à la fois liée à la programmation c++ et à l'environnement linux.
Je commence par poser le décor et je poserai ma question ensuite.
Mon projet utilise la librairie spécifique cplex, solveur de la société ILOG. Tout se passe bien tout au long de la compilation du projet, mais j'ai des erreurs bizarres à l'execution. Seule erreur flagrante, l'étape d'edition de lien me rapelle toutefois que la lib cplex a besoin de libstdc++.so.5 et que il y aura peut-etre conflit avec la libstdc++.so.6 (qui est linkée elle aussi par gcc)
En ce qui concerne mes erreurs (un beau segfault), j'utilise valgrind et celui-ci me donne l'enchainement des appels (j'ai raccourci)
main --> fonction de libcplex --> fonction de libstdc++6
Or, la libcplex a besoin de libstdc++.so.5... Je n'ai aucun moyen de savoir si c'est réellement ça qui cause l'erreur, ou bien si j'ai fait une erreur de programmation. J'aimerais juste essayer avec seulement la libstdc++5
Du coup, j'en viens à ma question. Comment
faire pour forcer le link avec uniquement libstdc++.so.5 ?
Merci d'avance pour vos réponses.
Re: GCC et conflits entre libstdc++.so.5 et 6
Bonjour,
Citation:
Envoyé par tibtib17
Du coup, j'en viens à ma question. Comment
faire pour forcer le link avec uniquement libstdc++.so.5 ?
D'apres ce que j'ai vu, g++-3.3 utilise libstdc++.so.5, alors que g++-3.4 utilise libstdc++.so.6. Il y a y une incompatibilite binaire entre les deux due a un changement d'ABI (d'ou le changement de numero de version), donc il faut eviter de melanger avec des liens symboliques entre les deux... Installe gcc 3.3, et reessaye.
Re: GCC et conflits entre libstdc++.so.5 et 6
Citation:
Envoyé par alveric
Bonjour,
Citation:
Envoyé par tibtib17
Du coup, j'en viens à ma question. Comment
faire pour forcer le link avec uniquement libstdc++.so.5 ?
D'apres ce que j'ai vu, g++-3.3 utilise libstdc++.so.5, alors que g++-3.4 utilise libstdc++.so.6. Il y a y une incompatibilite binaire entre les deux due a un changement d'ABI (d'ou le changement de numero de version), donc il faut eviter de melanger avec des liens symboliques entre les deux... Installe gcc 3.3, et reessaye.
Bonne idée, j'essaye tout de suite, gcc3.3 doit deja etre installé