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 :

Linker avec libboost_serialization sous Cygwin


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut Linker avec libboost_serialization sous Cygwin
    Salut à tous,

    J'aimerais linker mon programme avec la librairie boost_serialization sous Cygwin, mais lorsque je compile mon projet j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ** Compilation du client **
    g++ -ansi -g -Wall -pedantic -O0 -ISocketClasses -ICommon -lboost_serialization-gcc-mt-s \
     SocketClasses/SocketClasses.o Client/Client.o \
     -o Client
    SocketClasses/SocketClasses.o:SocketClasses.cpp:(.text$_ZN5boost7archive13text_oarchiveC1ERSoj[boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)]+0x1b): undefined reference to `boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::text_oarchive_impl(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)'
    SocketClasses/SocketClasses.o:SocketClasses.cpp:(.text$_ZN5boost7archive13text_iarchiveC1ERSij[boost::archive::text_iarchive::text_iarchive(std::basic_istream<char, std::char_traits<char> >&, unsigned int)]+0x1b): undefined reference to `boost::archive::text_iarchive_impl<boost::archive::text_iarchive>::text_iarchive_impl(std::basic_istream<char, std::char_traits<char> >&, unsigned int)'
     
    Blablabla ...
    A noter que le code compile parfaitement sous Visual Studio. J'ai installé les librairies Boost de développement et de runtime, les headers passent sans problème, et mon environnement est Cygwin avec g++ 3.4. Je suis étonné de ne pas avoir de fichiers libboost*.so mais seulement libboost*.a. J'ai notamment dans /usr/lib libboost_serialization-gcc-mt-s-1_33_1.a et libboost_serialization-gcc-mt-s.a.

    Merci de votre aide

  2. #2
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Peut-etre ne trouve-t il pas le chemin des bibliothèques ?
    essaies de rajouter cette option
    -L chemin_lib
    .a signifie que ce sont des bibliothèques statiques
    .so signifie que ce sont des bibliothèques dynamiques

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    Idem avec -L/usr/lib et -static ... bizarre !

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Le flag -mt. C'est un oubli de copier-coller manuel ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    Ce n'était pas un erreur de copier coller, je suis fénéant, je les fais toujours automatiquement . La version livrée avec Cygwin est multi threadée, je n'en ai pas trouvée d'autre.

    J'ai compilé le tout sous Linux, ca semble fonctionner sans problème, mais j'ai dû mettre directement le .so dans ma ligne de gcc.

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Alors compiles-toi boost pour cygwin, ou passes ton programme en MT.
    Je ne garanti pas que cela venne de là, mais cela t'évitera d'autres problèmes.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/09/2011, 14h01
  2. Les conversions de chemins Win/Linux (avec Find sous Cygwin)
    Par bros_70 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/02/2010, 16h43
  3. Problème avec grep sous Cygwin
    Par tnarol dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 09/07/2008, 17h12
  4. Pb avec g++ sous cygwin
    Par asm76 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 10/05/2007, 10h44
  5. probleme Linker avec glut sous dev-c++
    Par olator dans le forum Dev-C++
    Réponses: 2
    Dernier message: 03/11/2006, 19h42

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