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 :

Installer boost .. galère !


Sujet :

Boost C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut Installer boost .. galère !
    Bonjour à tous,

    Je voudrais installer boost car 3-4 de ses bibliothèques me plaisent bien : asio, filesystem (qui a besoin de system je crois) et thread.
    Alors j'ai installé CodeBlocks avec MinGw, puis j'ai suivi cette procédure : http://devtricks.wordpress.com/insta...ws-avec-mingw/

    Seulement arrive le moment où je tape cette commande :
    bjam stage --build-type=complete --build-dir="<boost_install>\build" --toolset=gcc --stagedir="<boost_install>"

    Ca dure super longtemps, plus d'une heure, bon je me dis normal, y'a plein de libs. Mais à un moment je vois un message "Espace disque faible" ! Ca m'avait pris plus de 6,5Go alors que c'était pas fini ! Incroyable

    C'est normal ou y'a une merde quelque part ? Parce que si faut se taper plus de 7Go pour 3 pauvres bibliothèques ça m'interesse pas

    Si on est obligés d'en passer par là (ce que je ne veux pas), connaissez-vous de bonnes bibliothèques portables Windows, Linux & Mac qui gèrent les sockets, les fichiers/répertoires et les threads ?

    Merci d'avance pour vos réactions

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'ai pas encore installé la 1.38, mais sur une vieille installation, et avec visual C++, mon répertoire fait environ 3Go, avec 1.5Go de fichiers temporaires qui peuvent être effacés une fois les bibliothèques finies de compiler.

    Mais ça, c'est ton répertoire de travail pour compiler. Avec l'exécutable, tu dois juste livrer les DLL que tu utilises, soit même pas 10Mo dans ma version.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Au lieu de faire stage, utilise install, ça me prend 1 Go tout pile pour la 1.37 avec Visual.
    Au pire tu peux toujours spécifier les libs que tu veux installer (avec la commande --with- )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    ok, merci pour vos réactions, je vais essayer les options --with et install

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    Re,
    j'ai exécuté cette commande : bjam --build-dir="<build_dir>\build" --toolset=gcc --with-system --with-thread --with-filesystem --with-date_time --with-regex --with-serialization install

    (apparamment il n'existe pas de --with-asio, il faut donc mettre date_time, regex et serialization)

    Résultat :
    failed updating 16 targets
    skipped 9 targets
    updated 7411 targets

    Je n'ai pas encore testé si ça marche correctement, mais je me demande où les .o ont été se cacher, parce ça prend quand même environ 1,5 Go (j'ai pas trouvé sur internet)

    EDIT : je viens d'essayer filesystem, et quand je fais l'include #include <boost/filesystem.hpp>, le compilateur me donne ça :
    obj\Debug\main.o||In function `Z41__static_initialization_and_destruction_0ii'
    C:\[...]\boost_1_38_0\boost\system\error_code.hpp|205|undefined reference to `boost::system::get_system_category()'|
    C:\[...]\boost_1_38_0\boost\system\error_code.hpp|206|undefined reference to `boost::system::get_generic_category()'|
    C:\[...]\boost_1_38_0\boost\system\error_code.hpp|211|undefined reference to `boost::system::get_generic_category()'|
    C:\[...]\boost_1_38_0\boost\system\error_code.hpp|212|undefined reference to `boost::system::get_generic_category()'|
    C:\[...]\boost_1_38_0\boost\system\error_code.hpp|213|undefined reference to `boost::system::get_system_category()'|
    ||=== Build finished: 5 errors, 0 warnings ===|

    Pour info, j'ai configuré Code Blocks comme suit :
    Dans Settings => Compiler and debugger => Search directories => Compiler => C:\[...]\boost_1_38_0\
    Dans Settings => Compiler and debugger => Search directories => Linker => C:\[...]\boost_1_38_0\libs\


    Une chose bizarre aussi, quand je fais un include de regex (qui ne nécessite pas de compilation) sans l'utiliser je n'ai aucun message. Par contre si j'utilise par exemple ça :
    boost::regex line( "^Subject: (Re: |Aw: )*(.*)" );
    J'ai ce message du compilateur :
    obj\Debug\main.o||In function `ZNSt11char_traitsIcE6lengthEPKc'
    unsigned int)]+0x22)||undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'|
    ||=== Build finished: 1 errors, 0 warnings ===|

    Pourquoi tout ça ne marche pas ?


    Merci

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    J'ai vérifié, j'utilise la commande suivante (sauf que j'ai Visual)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bjam --toolset=gcc --prefix="c:/boost/" install
    Ca build tout, avec 1 Go seulement...
    Sinon, peut etre vaut t-il mieux que tu enlèves quelques libs avec --without, genre celles que tu es sur de pas utiliser !

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    J'ai "la chance" de disposer de plusieurs DD, malgré le fait que mon PC soit "matusaleméen"

    Cela me permet de séparer aisément les dossiers de compilation de ceux d'installation

    Voici à peu près ce que l'on peut dire sur l'espace disque requis pour l'installation de boost 1.38:

    Archive comprssée (format 7zip) : 26,6Mb
    dossier décompressé avant compilation : 187Mb (26000+ fichiers et 2000+ dossiers)

    En ayant défini EXPAT_INCLUDE et EXPAT_LIBPATH pour permettre la compilation de GraphML et en compilant avec la ligne
    de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bjam --toolset=gcc --without-mpi install
    (je n'ai pas de compilateur mpi pour supporter le multi-processing et ne n'ai jamais trouvé le moyen d'activer l'unicode pour les regex), la compilation dure +/- 1 heure 30

    Au final, le dossier dans lequel se fait la compilation prend Mb d'espace (les fichiers objets se trouvent dans un dossier nommé "V2" )

    Assez bizarrement, ce dossier, une fois la compilation finie, ne prend que 71 Mb (et pourtant on y trouve tous les fichiers objets et toutes les dll et autres .lib)

    Le dossier d'installation, quant à lui, utilise 108Mb (41,6 Mb pour les en-têtes et 66,6 Mb pour les dlls et *.lib), sans la documentation

    Ceci dit, je t'accorde que tout ceci peut sembler un peu "énorme" s'il s'agit de n'utiliser qu'un ou deux bibliothèques de boost pour un projet particulier...

    Mais n'oublie malgré tout pas que, outre ton projet en cours, tu risque d'en avoir bien d'autres, voire de vouloir faire évoluer ton projet, et que tu peux te trouver dans une situation dans laquelle d'autres bibliothèques de boost s'avéreront intéressantes
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    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
    Pour tes erreurs undefined reference, il faut tout simplement LIER la bibliothèque de Boost associée (le .a de boost_system, en l'occurence, qui doit s'appeler "libboost-system-1.38.a" ou quelque chose de ce goût là). Pour la deuxième erreur de ce type, c'est le .a de boost.regex qu'il faut lier.

    Sinon, il n'y a pas de --with-asio car asio est une bibliothèque header-only, qui est donc constituée uniquement d'entêtes et donc il n'y a pas de .a/.dll/.so/autres à produire. Le with sert à produire les .a/.dll & compagnie, justement.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Voici à peu près ce que l'on peut dire sur l'espace disque requis pour l'installation de boost 1.38:

    Archive comprssée (format 7zip) : 26,6Mb
    dossier décompressé avant compilation : 187Mb (26000+ fichiers et 2000+ dossiers)

    Au final, le dossier dans lequel se fait la compilation prend Mb d'espace (les fichiers objets se trouvent dans un dossier nommé "V2" )

    Assez bizarrement, ce dossier, une fois la compilation finie, ne prend que 71 Mb (et pourtant on y trouve tous les fichiers objets et toutes les dll et autres .lib)

    Le dossier d'installation, quant à lui, utilise 108Mb (41,6 Mb pour les en-têtes et 66,6 Mb pour les dlls et *.lib), sans la documentation
    Merci
    Par contre je viens de supprimer le dossier boost de mon PC (corbeille incluse), et je n'ai toujours pas récupéré mon giga et demi, ça m'inquiète un peu. Est-ce que vous sauriez où ça aurait pu être mit ?

    Merci

  10. #10
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    regarde peut être du coté des fichiers temporaires (C:\Documents and Settings\stargatefan\Local Settings\Temp en priorité)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Par défaut
    ça n'a pas l'air d'être là
    ah j'ai trouvé, c'est dans C:\Boost
    Ouh la vilaine bestiole qui me cache des répertoires^^

    EDIT : ah, apparamment ça ne fait que environ 50Mo, donc ça doit pas être le seul endroit. (J'y ai pourtant trouvé des .lib et des .hpp)

    Merci pour votre aide

Discussions similaires

  1. Coment installer Boost avec Dev C++
    Par Barjabulle dans le forum Dev-C++
    Réponses: 1
    Dernier message: 27/01/2007, 19h23
  2. Installer boost sur mingw
    Par casafa dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 11/10/2006, 14h26
  3. Installer Boost avec CodeBlocks et MinGW
    Par Sephiroth Lune dans le forum Boost
    Réponses: 28
    Dernier message: 18/09/2006, 21h51
  4. Installer boost pour GCC et CodeBlocks
    Par Spartan03 dans le forum Code::Blocks
    Réponses: 9
    Dernier message: 18/07/2006, 16h13
  5. installer boost sous windows
    Par bigboomshakala dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 16/12/2004, 15h59

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