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 Boost avec plusieurs MSVC installés


Sujet :

Boost C++

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut Compiler Boost avec plusieurs MSVC installés
    Sur un PC emprunté pendant les vacances j'ai fait une première compil de boost 1.39 sur une machine qui n'a que VS2008 installé. Un coup de bootstrap.bat puis bjam.exe, et 2 heures plus tard j'avais toutes les librairies en apparence fonctionelles.

    Maintenant je passe aux choses "sérieuses"
    Sur ma machine au boulot j'ai deux MSVC qui cohabitent ensemble (et sans problème jusqu'à présent): VC6 et VC8(=2005). La compil de boost 1.40 pour 2005 semble s'être passée sans problème. Par contre celle pour VC6 ne passe pas. J'ai pourtant renommé le répertoire de VC8, lancé un "prompt" sans les variables d'environnemnt path, include, lib, etc, dédiées à VC8, la compil génère des erreurs. J'ai l'impression que bjam.exe, bien que correctement compilé lui (avec l'option explicite "msvc" lors de l'appel à build.bat), appelle le compilateur de VC6 avec de mauvaises options de compil.

    J'en appelle donc à vous pour m'aider à compiler pour différentes versions de visual studio installées sur la même machine. Il semble que bjam.exe cherche à compiler pour la version la plus récente uniquement (en regardant dans la registry ?).
    Je précise que les headers de boost fonctionne bien sous VC6 (celles qui n'ont pas besoin de librairies).

    PS: je fais mes tous premiers pas dans boost

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Voici un exemple de ce que j'obtiens en tapant bjam.exe --with-serialization debug stage dans la ligne de commande:
    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
    C:\SOFT\boost_1_40_0>bjam.exe --with-serialization debug stage
    WARNING: No python installation configured and autoconfiguration
             failed.  See http://www.boost.org/libs/python/doc/building.html
             for configuration instructions or pass --without-python to
             suppress this message and silently skip all Boost.Python targets
    ...patience...
    ...found 892 targets...
    ...updating 28 targets...
    compile-c-c++ bin.v2\libs\serialization\build\msvc-6.0\debug\link-static\threadi
    ng-multi\basic_text_iprimitive.obj
    basic_text_iprimitive.cpp
    .\boost/archive/codecvt_null.hpp(30) : error C2039: 'codecvt' : is not a member
    of 'global namespace'
    .\boost/archive/codecvt_null.hpp(30) : error C2873: 'codecvt' : symbol cannot be
     used in a using-declaration
    .\boost/archive/codecvt_null.hpp(43) : error C2039: 'mbstate_t' : is not a membe
    r of 'std'
    .\boost/archive/codecvt_null.hpp(55) : error C2039: 'mbstate_t' : is not a membe
    r of 'std'
    .\boost/archive/codecvt_null.hpp(59) : error C2039: 'mbstate_t' : is not a membe
    r of 'std'
    .\boost/archive/codecvt_null.hpp(69) : error C2039: 'mbstate_t' : is not a membe
    r of 'std'
    .\boost/iterator.hpp(57) : fatal error C1903: unable to recover from previous er
    ror(s); stopping compilation

  3. #3
    Membre Expert

    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
    Par défaut
    Salut,

    Ajoute à ta ligne de commande quelque chose comme :
    MAT.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Il ne faut pas faire des astuces du genre essayer de renommer les répertoires...
    Ce qu'il faut faire, c'est mettre dans user-config.jam les répertoires où sont installées les différentes versions de MSVC, puis invoquer celle que tu veux utiliser avec bjam.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Citation Envoyé par Mat007 Voir le message
    Salut,

    Ajoute à ta ligne de commande quelque chose comme :
    MAT.
    --toolset=vc8
    OK

    --toolset=msvc-6.5
    PAS OK, pas reconnu comme toolset par bjam.

    --toolset=msvc
    --toolset=msvc-6
    OK, mais la compilation génère des erreurs.

    Citation Envoyé par loufoque Voir le message
    Il ne faut pas faire des astuces du genre essayer de renommer les répertoires...
    Ce qu'il faut faire, c'est mettre dans user-config.jam les répertoires où sont installées les différentes versions de MSVC, puis invoquer celle que tu veux utiliser avec bjam.
    Je ne trouve pas de fichier user-config.jam

    De toutes façons s'il n'y a pas de solution simple, je vais laisser tomber. D'autant plus que les headers seuls de la dernière version de boost 1.40 ne passent déjà pas sous VC6. Ceux de la versions 1.37 bien, je vais en rester à les utiliser sans compil sous VC6.

    Merci à tous.
    Cependant si quelqu'un réussi à me faire les lib binaires, il peut me faire signe
    Au fait, il n'y a pas un (web)forum sur boost.org (je n'en vois pas, juste un newsgroup) ?

  6. #6
    Membre Expert

    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
    Par défaut
    Citation Envoyé par camboui Voir le message
    --toolset=msvc-6.5
    PAS OK, pas reconnu comme toolset par bjam.

    --toolset=msvc
    --toolset=msvc-6
    OK, mais la compilation génère des erreurs.
    Le msvc-6.5 je l'ai déduit de , lien trouvé depuis ici.
    Sinon je compile pour msvc en mettant sur une même ligne de commande --toolset=msvc-7.1 --toolset=msvc-8.0 --toolset=msvc-9.0 avec bjam qui se débrouille pour trouver et initialiser le contexte nécessaire pour chaque compilateur.

    Mais bon ça ne me surprend pas plus que ça que VC6 ne permette pas/plus de compiler Boost...


    MAT.

Discussions similaires

  1. compiler Boost avec std=c++0x
    Par canardchat dans le forum Boost
    Réponses: 2
    Dernier message: 21/05/2012, 23h41
  2. Compilation Dll avec plusieurs projets
    Par Fooshi dans le forum Visual Studio
    Réponses: 1
    Dernier message: 30/10/2010, 14h59
  3. Compiler module avec plusieurs fichiers
    Par j0o0 dans le forum Linux
    Réponses: 3
    Dernier message: 12/04/2010, 20h39
  4. Installer Boost avec CodeBlocks et MinGW
    Par Sephiroth Lune dans le forum Boost
    Réponses: 28
    Dernier message: 18/09/2006, 21h51
  5. compilation de sources avec plusieurs version de JDK
    Par DanielW33 dans le forum Maven
    Réponses: 8
    Dernier message: 16/08/2006, 18h59

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