IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

GCC et conflits entre libstdc++.so.5 et 6


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut 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.

  2. #2
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    salut,

    j'ai peut-être une soluce, mais c'est pas très propre mais juste pour faire un test il suffirait de renommer libstdc.so.6 avant la compilation, compiler (donc utilisation du 5) et remettre libstdc.so.6 comme avant pour pouvoir lancer ton appli. peut-être que ça va pouvoir te faire avancer un peu

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Helas, j'ai deja pensé à cette solution, mais d'autres facteurs entrent en jeu.

    Déjà, cette solution n'est, certes, pas très propre, faire appel aux droits du root n'est pas toujours la bonne solution.
    D'autre part, j'ai besoin de libstdc++.so.6 pour ma compilation (se serait trop long à expliquer, mais crois moi j'en ai besoin, sisi, j'ai deja essayé )

    En tout cas, merci de te pencher sur mon cas

    : : D'autres solutions?

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut 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.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut 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é

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Alors là, je dis chapeau! et Merci

    Ca marche et je me prends la tete dessus depuis quelques jours...

    Merci encore alveric et Le_coyote

    edit : je met le sujet en résolu, malgré que ce ne soit qu'une combine...

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par tibtib17
    edit : je met le sujet en résolu, malgré que ce ne soit qu'une combine...
    C'est pas une combine. C'est un probleme de version de la libc++ qui est lie au compilateur utilise. Il faut utilise la bonne version, c'est tout... (par contre, c'est bizarre que le code ne marche pas avec la libstdc++6... si tu peux, remonte le bug aux gens de chez ILOG. ils en feront ce qu'ils voudront, mais au moins ils seront prevenus)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    C'est pas une combine. C'est un probleme de version de la libc++ qui est lie au compilateur utilise. Il faut utilise la bonne version, c'est tout... (par contre, c'est bizarre que le code ne marche pas avec la libstdc++6...
    Non, ce n'est pas bizarre, j'avais un problème lors de la destruction d'un objet cplex, et je me suis apercu (merci valgrind) que la pile des appels mettait en oeuvre un destructeur d'un objet de la libstdc++.so.6 alors que l'objet a été utilisé à l'interieur de cplex (et donc peut-etre instancié à l'aide de la libstdc++.so.5)
    De plus, lors de l'édition de lien, gcc m'a sorti un warning... ce n'est donc pas si bizarre que ca... Je ne peux pas dire que je n'était pas prévenu.


    si tu peux, remonte le bug aux gens de chez ILOG. ils en feront ce qu'ils voudront, mais au moins ils seront prevenus)
    C'est prévu, mais je voulais etre sur que le problème venait de là... Imagine moi rendre un bug report léger comme une plume. J'aurais eu l'air fin.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conflit entre boost::filesystem et GCC
    Par Florian Goo dans le forum Boost
    Réponses: 1
    Dernier message: 09/06/2009, 06h02
  2. Possibles conflits entre GL, GLAUX et GLUT
    Par barthelv dans le forum GLUT
    Réponses: 1
    Dernier message: 19/11/2004, 12h31
  3. Conflit entre bases de données
    Par BRODU dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2004, 11h40
  4. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo