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 :

Installation de Boost


Sujet :

Boost C++

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut Installation de Boost
    Bonjour,
    J'ai bien suivi les etapes de l'installation de Boost mais il y a toujours erreur
    Donc pour resumer ce que j'ai fait:

    1) J'ai telecharge le .zip, dezippe dans un dossier BOOSTROOT
    2) Je compile avec .\bootstrap puis .\bjam, ca compile bien et j'ai tous les fichier lib dans un dossier
    3) Je cree mon projet dans VS 2005 pour tester la bibliotheque. D'abord j'include le dossier BOOSTROOT dans Configuration Properties ->C/C++->Additional Include Properties
    4) Dans linker->General->Additional library Directories, j'inclure le dossier BOOSTROOT\stage\lib
    5) Je ne sais pas si cette etape est important mais je le fais quand meme. Dans linker->input->Additional Dependancies->j'ajoute le nom des fichiers lib que je veux utiliser. Dans cet exemple je veux utiliser les test unitaires. Donc 3 fichiers

    libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib
    libboost_unit_test_framework-vc100-mt-gd.lib
    libboost_unit_test_framework-vc100-mt.lib

    6) Dans mon projet, je cree un main.cpp avec juste une declaration et une fonction main vide

    J ai des erreurs suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    1>------ Build started: Project: test, Configuration: Debug Win32 ------
    1>Linking...
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_log.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_log.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_parameters.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_parameters.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(compiler_log_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(compiler_log_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(xml_log_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(xml_log_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(framework.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(framework.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_suite.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_suite.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(execution_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(execution_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(debug.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(debug.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(results_reporter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(results_reporter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(results_collector.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(results_collector.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(progress_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(progress_monitor.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(plain_report_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(plain_report_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(xml_report_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_MSC_VER=1600' encountered; ignored
    1>libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(xml_report_formatter.obj) : warning LNK4229: invalid directive '/FAILIFMISMATCH:_ITERATOR_DEBUG_LEVEL=2' encountered; ignored
    1>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) already defined in libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_log.obj)
    1>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) already defined in libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_log.obj)
    1>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) already defined in libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib(unit_test_parameters.obj)
    1>LINK : fatal error LNK1104: cannot open file 'libboost_unit_test_framework-vc80-mt-gd-1_46_1.lib'
    Par contre, si j'inclure seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <boost/smart_ptr/shared_ptr.hpp>
    Il n'y a aucun souci

    Merci de me guider

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    Par contre,
    si je fais pas l'etape 5 j'ai seulement cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1>LINK : fatal error LNK1104: cannot open file 'libboost_unit_test_framework-vc80-mt-gd-1_46_1.lib'
    Ce qui est bizarre car j'ai deja inclu le dossier lib! et pourquoi le compilateur ne trouve pas ce fichier .lib?

  3. #3
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    Alors, essayons de faire simple et de ne pas dire trop de conneries...

    Au cas ce qui suit ne t'aide pas, le site http://www.boostpro.com/download/ permet de télécharger des installeurs qui t'éviteront de compiler boost toi même .


    - Tu n'as pas d'erreur quand tu utilises shared_ptr.hpp puisque les chemins de recherche des entêtes sont correctement configurés et que tu n'as pas de bibliothèque à lier dans ce cas là (code en template pure).

    - Tu as des problèmes au niveau du "link", donc dans la configuration de l'éditeur de lien.

    Tu ajoutes les bibliothèques suivantes dans "additionnal dependencies":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib
    libboost_unit_test_framework-vc100-mt-gd.lib
    libboost_unit_test_framework-vc100-mt.lib
    Ce faisant, tu ajoutes trois variantes de compilation d'une même bibliothèque, d'où les "already defined". Tu dois en utiliser une seule et ça se fait automatiquement.

    Chose troublante : Tu dis que tu travailles sous visual 2005, or si je ne dis pas de connerie,
    libboost_unit_test_framework-vc100-mt-gd-1_46_1.lib signifie : boost, bibliothèque unit_test_framework, compilée avec visual studio 2010, en multithread, en mode débug, tagguée avec la version.

    => Tu as un visual 2010 et un 2005 sur ta machine?

    Avec visual studio, tu n'as pas besoins de rentrer les bibliothèques de boost dans "additionnal dependencies". Par défaut, boost le fait automatiquement en utilisant les fonctionnalités d'autolink. Configurer "Additional library Directories", en ajoutant le chemin vers le dossier contenant les .lib de boost, suffit. Tu n'as rien à mettre dans ""additionnal dependencies".

    Avec l'auto-link, boost recherche automatiquement sa bibliothèque compilée pour visual 2005 et tu as compilé boost avec visual 2010 sans le savoir avec bjam => Vois du coté de bjam toolset=msvc-8.0. C'est à mon avis ce qui fait que tu vois sortir un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LINK : fatal error LNK1104: cannot open file 'libboost_unit_test_framework-vc80-mt-gd-1_46_1.lib'

    Bilan, je t'invite à lire cette doc, elle est assez précise et te permettra de comprendre ces noms de bibliothèque à rallonge : http://www.boost.org/doc/libs/1_35_0...d/windows.html


    Si tu peux conserver une seule version de visual studio sur ta machine, ça ne lui fera pas grand mal et ça t'évitera bien des mélanges dans tes configurations dans un premier temps.

    A défaut, fais attention à la version du compilateur utilisée par bjam et vérifie les noms des bibliothèques produites

    Bon courage,
    Tu tiens le bon bout.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut Merci
    Merci,
    Je comprends la problematique car j'ai installe deux version visual studio 2005 et 2010 sur ma machine! Du coup la commande ./bjarn a choisi automatiquement la derniere version!

    Du coup je suis en entrain de chercher comment choisir explicitement le compilateur visual studio 2005

  5. #5
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    C'était dit :
    bjam toolset=msvc-8.0 [...]

    Bonne soirée
    ++

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 153
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par bretus Voir le message
    Bonjour,

    C'était dit :
    bjam toolset=msvc-8.0 [...]

    Bonne soirée
    ++
    Merci pour vos aides,
    Par contre, savez vous comment faire pour inclure tous les .lib dans le dossier lib? Ou est ce que je devrai inclure manuellemlent et individuellement chaque fichier?

    Merci

Discussions similaires

  1. Installation de Boost
    Par loicbar dans le forum Boost
    Réponses: 20
    Dernier message: 10/11/2007, 08h10
  2. Installation de Boost avec Code::Blocks et MinGW
    Par kalash_jako dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 27/08/2007, 12h16
  3. Installation de Boost (sous winxp) avec mingw
    Par Zapan77 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 11/11/2006, 01h15
  4. installation de boost
    Par heinquoi dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 18/04/2005, 17h20
  5. Installation de boost (librairie)
    Par dj.motte dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 21/11/2004, 03h11

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