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

Boost C++ Discussion :

Compiler la lib de boost!


Sujet :

Boost C++

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Justement, c'est bien ce -lboost_thread_1_37_mt qui m'embète! Moi je voudrais écrire libboost_thread... Car -lboost_thread_1_37_mt, j'y suis arrivé à le faire avec un simple make install! Alors qu'avec les dépots, si je mets libboost_thread, ça marche nickel! C'est donc qu'il faut modifier les fichiers archive! J'ai essayé de les renommer mais beaucoup sont des liens symboliques. j'ai donc modifié le fichier pointé par les lien ET TOUT A BIEN MARCHÉ!!! A la compilation tout du moins.... Après, à l'exécution, il cherchait le fichier .so avec le nom "foireux". Et là, je n'ai plus réussi! Je me suis dit que faire une compilation non dynamique me permettrais d'éviter celà mais je ne sais pas comment faire sous éclipse... Donc actuellement je me sers de la version des dépots... Avec deux versions de retard...

    Si quelqu'un a une solution, je le remercie d'avance!

  2. #22
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ecoute, un
    ln -s [...] [...]
    devrait très très bien te convenir... Mais là Boost ne peut pas savoir à ta place. Parce que beaucoup de personnes font cohabiter plusieurs versions de Boost et ils doivent donc coller le numéro de la version.
    Et un ln -s c'est très très vite fait !

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    OK, merci! J'avais essayé un truc similaire mais ça n'avait pas marché et j'ai donc réessayé! mais toujours le même problème que la dernière fois! J'explique! Quand j'installe avec les sources, il me crée ces fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    -rw-r--r-- 1 root root 117180 2008-11-28 20:13 libboost_thread-gcc43-mt-1_37.a
    lrwxrwxrwx 1 root root     39 2008-11-28 20:12 libboost_thread-gcc43-mt-1_37.so -> libboost_thread-gcc43-mt-1_37.so.1.37.0
    -rwxr-xr-x 1 root root  64280 2008-11-28 20:12 libboost_thread-gcc43-mt-1_37.so.1.37.0
    lrwxrwxrwx 2 root root     31 2008-11-28 20:13 libboost_thread-gcc43-mt.a -> libboost_thread-gcc43-mt-1_37.a
    lrwxrwxrwx 1 root root     39 2008-11-28 20:13 libboost_thread-gcc43-mt.so -> libboost_thread-gcc43-mt-1_37.so.1.37.0
    J'essaye de compiler en ajoutant la librairie : libboost_thread-gcc43-mt et tout marche bien!

    je crée donc le lien libboost_thread.a qui pointe vers libboost_thread-gcc43-mt-1_37.a. je me retrouve donc avec la configuration suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    lrwxrwxrwx 2 root root     31 2008-11-28 20:13 libboost_thread.a -> libboost_thread-gcc43-mt-1_37.a
    -rw-r--r-- 1 root root 117180 2008-11-28 20:13 libboost_thread-gcc43-mt-1_37.a
    lrwxrwxrwx 1 root root     39 2008-11-28 20:12 libboost_thread-gcc43-mt-1_37.so -> libboost_thread-gcc43-mt-1_37.so.1.37.0
    -rwxr-xr-x 1 root root  64280 2008-11-28 20:12 libboost_thread-gcc43-mt-1_37.so.1.37.0
    lrwxrwxrwx 2 root root     31 2008-11-28 20:13 libboost_thread-gcc43-mt.a -> libboost_thread-gcc43-mt-1_37.a
    lrwxrwxrwx 1 root root     39 2008-11-28 20:13 libboost_thread-gcc43-mt.so -> libboost_thread-gcc43-mt-1_37.so.1.37.0
    je modifie mon inclusion de la librairie boost_thread seulement et là, c'est le drame, erreur de compilation que voila :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /usr/local/lib/libboost_thread.a(thread.o):thread.cpp: more undefined references to `pthread_getspecific' follow	
    once.cpp: undefined reference to `pthread_getspecific'
    once.cpp: undefined reference to `pthread_key_create'
    once.cpp: undefined reference to `pthread_once'
    once.cpp: undefined reference to `pthread_setspecific'
    thread.cpp: undefined reference to `pthread_create'
    thread.cpp: undefined reference to `pthread_detach'
    thread.cpp: undefined reference to `pthread_getspecific'	
    thread.cpp: undefined reference to `pthread_join'
    thread.cpp: undefined reference to `pthread_key_create'
    thread.cpp: undefined reference to `pthread_setspecific'
    Il n'apprécie donc pas ce lien qu'il ne comprends pas! Comment faire dans ce cas?

    merci d'avance!

  4. #24
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par barbug Voir le message
    Justement, c'est bien ce -lboost_thread_1_37_mt qui m'embète! Moi je voudrais écrire libboost_thread... Car -lboost_thread_1_37_mt, j'y suis arrivé à le faire avec un simple make install! Alors qu'avec les dépots, si je mets libboost_thread, ça marche nickel!
    Parce que l'installation de Boost est modifiée (déjà dit, déjà répété) pour les dépôts.

    Citation Envoyé par barbug Voir le message
    Il n'apprécie donc pas ce lien qu'il ne comprends pas! Comment faire dans ce cas?
    Lier avec pthread en plus.

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Je l'appelle comment le lien? Et c'est bien libpthread qui est dans /usr/lib?

    Merci d'avance!

  6. #26
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Oui...
    -lpthread.

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Donc, je mets un lien dans mon répertoir /usr/local/lib nommé libpthread.a qui pointe vers le fichier libpthread.a de /usr/lib...? Je ne comprends pas à quoi ça sert puisque il a déjà le même nom dans /usr/lib!

    merci d'avance!

  8. #28
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Non, tu fais une édition des liens avec pthread !

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Effectivement, ça marche! Mais pourquoi est-ce que je dois ajouter pthread alors que quand je mets boost_thread-gcc43-mt, il ne me le demandait pas? Et comment faire pour éviter qu'il me le demande?

    merci d'avance!

  10. #30
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Parce que la bibliothèque dynamique est liée à la bibliothèque pthread, mais ce n'est pas possible de lier une bibliothèque statique. C'est une opération qui doit être effectuée après.

  11. #31
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Donc il utilise par défaut la bibliothèque dynamique? Comment l'obliger à utiliser la bibliothèque statique? Et comment faire pour faire les même modifications qu'ils ont faites dans les dépôts?

    merci d'avance!

  12. #32
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par barbug Voir le message
    Donc il utilise par défaut la bibliothèque dynamique? Comment l'obliger à utiliser la bibliothèque statique? Et comment faire pour faire les même modifications qu'ils ont faites dans les dépôts?

    merci d'avance!
    Une bibliothèque statique n'effectue pas d'édition des liens lors de sa création, donc elle ne peut pas récupérer les fonctions dans pthread, tu dois le faire à la main. Maintenant, si tu ne comprends pas ça, je te propose d'aller regarder dans les tutoriels Linux.

    Pour prendre la bibliothèque statique, il y a un truc genre -Wl,-static ou qqch du genre à passer pour que les bibliothèques qui suivent soient prises en statique. Mais je ne vois pas pourquoi tu voudrais faire ainsi, pthread est une bibliothèque du système.

    Enfin, pour les modifs, regarde dans les sources de dépôts. Personnellement, je ne vais pas passer du temps (précieux) à regarder comment faire des modifs qui vont à l'encontre de ce en quoi je crois.

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    C'est pas vraiment pour pthread que je voulais savoir mais plus pour les libs de boost car '(de ce que j'ai entendu dire) si on compile en dynamique et que la personne utilisant le programme n'a pas la bibliothéque, elle doit la récupérer! Est-ce bien cela?

    Merci d'avance!

  14. #34
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Comme pour toutes les bibliothèques dynamiques.
    Mais si tu lies en statique Boost, je ne vois pas pourquoi changer le suffixe. Du tout.

  15. #35
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    Bon,va falloir que je me renseignes un peu mieux sur le sujet!

    Merci beaucoup pour toutes ces réponses!

    A bientot!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. compilation incluant libs dynamique et lib Qt4
    Par ostralo dans le forum Qt
    Réponses: 2
    Dernier message: 23/05/2008, 13h58
  2. Problème de lib avec Boost::thread
    Par TocTocKiéLà? dans le forum Boost
    Réponses: 5
    Dernier message: 14/08/2007, 01h05
  3. Réponses: 6
    Dernier message: 05/06/2006, 18h43
  4. Réponses: 5
    Dernier message: 04/03/2006, 15h42

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