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 :

1ère utilisation: Quelle librairie linker pour filesystem?


Sujet :

Boost C++

  1. #1
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut Quelle librairie linker pour filesystem avec MinGW?
    Bonjour, j'ai compilé filesystem sous XP et mingw avec bjam:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bjam --toolset=gcc --with=filesystem stage
    J'ai obtenu les librairies suivantes (avec des dlls) dans un sous dossier \stage\libs:

    29/03/2008 20:09 95ÿ130 boost_filesystem-mgw34-1_34_1.a
    29/03/2008 20:09 204ÿ366 boost_filesystem-mgw34-d-1_34_1.a
    29/03/2008 20:09 95ÿ984 boost_filesystem-mgw34-mt-1_34_1.a
    29/03/2008 20:09 205ÿ456 boost_filesystem-mgw34-mt-d-1_34_1.a
    29/03/2008 20:10 71ÿ598 libboost_filesystem-mgw34-1_34_1.a
    29/03/2008 20:10 3ÿ147ÿ826 libboost_filesystem-mgw34-d-1_34_1.a
    29/03/2008 20:10 71ÿ598 libboost_filesystem-mgw34-mt-1_34_1.a
    29/03/2008 20:09 3ÿ147ÿ826 libboost_filesystem-mgw34-mt-d-1_34_1.a
    29/03/2008 20:10 71ÿ598 libboost_filesystem-mgw34-mt-s-1_34_1.a
    29/03/2008 20:10 3ÿ147ÿ826 libboost_filesystem-mgw34-mt-sd-1_34_1.a
    29/03/2008 20:11 71ÿ598 libboost_filesystem-mgw34-s-1_34_1.a
    29/03/2008 20:10 3ÿ147ÿ826 libboost_filesystem-mgw34-sd-1_34_1.a
    Quelle librairie je dois linker pour mes projets?

    J'ai essayer avec chaqune d'entre elle avec ce bout de programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <boost\filesystem\path.hpp>
    #include <boost\filesystem\operations.hpp>
     
    int main()
    {
    	boost::filesystem::path p;
    	p = boost::filesystem::current_path();
    }
    EXEC = test
    IPATHS = -IC:\boost_1_34_1
    LPATHS = -LC:\boost_1_34_1\stage\lib
    LFLAGS = -lboost_filesystem-mgw34-d-1_34_1

    $(EXEC): main.o
    g++ $(LPATHS) $(LFLAGS) $^

    main.o: main.cpp
    g++ $(IPATHS) -c $^
    et j'obtiens:

    g++ -LC:\boost_1_34_1\stage\lib -lboost_filesystem-mgw34-d-1_34_1 main.o
    main.o(.text$_ZN5boost10filesystem12current_pathINS0_10basic_pathISsNS0_11path_traitsEEEEET_v[boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> boost::filesystem::current_path<boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> >()]+0x6a):main.cpp: undefined reference to `boost::filesystem::detail::get_current_path_api(std::string&)'
    collect2: ld returned 1 exit status
    mingw32-make: *** [test] Error 1

  2. #2
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Normalement les .libs sont linkées automatiquement. Inclus juste les headers.
    (corrigez moi si je me trompe...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Normalement les .libs sont linkées automatiquement. Inclus juste les headers.
    (corrigez moi si je me trompe...)
    hein? je ne crois pas

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Normalement les .libs sont linkées automatiquement.
    C'est uniquement pour msvc.

    A part ça j'aurais tendance à dire qu'il faudrait sans doute prendre libboost_filesystem-mgw34-mt-1_34_1.a bien que je n'utilise pas mingw (mais cygwin pas mal).
    Sinon essaye de faire en sorte d'inverser le main.o et le -lboost_filesystem-mgw34-d-1_34_1 sur ta ligne de commande ?

    MAT.

  5. #5
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Ah oui tu as trouvé. J'ai donc inversé: g++ $(LPATHS) $(LFLAGS) $^ devient g++ $(LPATHS) $^ $(LFLAGS)

    Ca marche quelque soit la librairie que je linke. A quoi correspondent les différentes lettres?

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par Nykoo Voir le message
    A quoi correspondent les différentes lettres?
    C'est expliqué dans la partie de la documentation "getting started".

    MAT.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/05/2013, 21h32
  2. Quelle librairie Java pour le montage vidéo?
    Par addihoub dans le forum Multimédia
    Réponses: 2
    Dernier message: 29/05/2012, 17h07
  3. Quelle librairie c++ pour calcul matriciel ?
    Par jeanpeuplu dans le forum C++
    Réponses: 7
    Dernier message: 15/06/2011, 13h11
  4. Réponses: 4
    Dernier message: 10/08/2010, 15h16
  5. Quelle librairie adopter pour faire un jeu par navigateur ?
    Par Meardon dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 22/10/2008, 17h39

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