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 :

Alleger boost - header files


Sujet :

Boost C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut Alleger boost - header files
    Bonjour,

    Est ce qu'il y a un outil dans boost qui permet de créer uniquement les répertoires include nécessaires aux fichiers include utilisés ?

    Par exemple pour la compil d'une lib on utilise b2 --with-XXXX avec le nom de la lib de facon a ne pas tout generer.

    De la même manière un script ou autre qui fournit les répertoires d'include nécessaires a une liste de header utilisés.
    Par défaut on les a tous ce qui est assez volumineux (ou alors j'ai raté un truc).

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Ya ~80Mo d'includes, c'est vraiment pas énorme.
    Si tu veux gagner de l'espace disque, build seulement les libs dont tu te sers, mais encore une fois ya pas énorme à gagner (boost 1.5.0 build en 32 bits, debug + release, yen à pour ~530Mo de libs, donc probablement ~1Go si tu build en 32 et 64 bits).

    Ou alors j'ai pas compris la question ?

  3. #3
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Il y a un outil fait pour ça dans boost, qui permet d'extraire uniquement le code source des composants que l'on spécifie ainsi que leur dépendances : boost.bcp

    Edit : Bon, après, par expérience, bcp vise large, la dernière fois j'ai essayé d'extraire boost.shared_ptr avec bcp et la moitié de boost est venu avec, j'en ai eu pour 200 headers qqchose comme ça.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Par défaut
    OK merci pour vos retours,

    Oui c'est ça 100Mo de headers, pas énorme certes mais si je peux avoir uniquement ceux que j'utilise je trouve ça plus clean.
    Pour les libs c'est ce que je fais de builder seulement les utilisées.

    Je vais regarder bcp

    Merci

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour,

    Il y a deux façon de se sévir d'un bibliothèque header only :
    • Considérer que c'est une dépendance du projet et fournir au projet de quoi faire référence à cette dépendance. Si l'environnement est clean la seul chose à faire est d'installer (correctement) les dépendances. Et dans ce cas, installer complètement une dépendance évite d'avoir à le refaire pour d'autre projet, ce qui risque d'arriver si tu n'installes que des "bouts".
    • L'inclure totalement dans le projet. Dans ce cas se limiter au strict necessaire est envisageable.


    C'est dans cette seconde option que s'inscrit boost.bcp, te permettre de fournir dans ton projet qu'un sous-ensemble de boost.

    Deux points à souligner sur cette approche AMA :
    • Ca permet de ne pas etre dépendant de la version de boost (puisque tu as extrait ce que tu veux), par contre c'est à double tranchant, en effet tu sais que dans les conditions que tu as testé c'est fonctionnel, mais si tes tests sont trop "faible" et qu'un problème est découvert plus tard et est corrigé par une nouvelle version de boost, tu dois refaire l'extraction et l'archive du projet. D'autre part la compatibilité de boost entre les versions est assez forte, si ca marche pour une version, il est trop probable que ca marche pour les autres.
    • Tu as en effet gagner de l'espace si tu compares projet + boost à projet + extraction. Sauf qu'à moins de n'avoir qu'un seul projet, garder boost comme simple dépendance permet de ne pas avoir plusieurs fois les mêmes headers de boost dans des projets différents.


    Un intérêt de l'extraction est lors du besoin d'éléments proche de boost mais avec une touche maison, dans ce cas extraire et attacher directement les éléments au projet est viable (une autre solution est d'indiquer une dépendance a une version spécifique avec besoin d'un patch pour adapter).

  6. #6
    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
    Par défaut
    Juste pour info, les gens de Boost sont en train de mettre en place une solution pour ne recuperer QUE ce que tu veux utiliser (meme si ca fais des dependances dans tous les sens, genre boost::shared_ptr effectivement).
    Elle marchera, theoriquement, pour d'autres projets C++ aussi, suivant le modele de pip de Python ou gem de Ruby.

    Par contre, ca va pas etre pour tout de suite.

Discussions similaires

  1. GCC: inclusion de header files via -I
    Par Bardak dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 19/12/2009, 12h33
  2. Réponses: 7
    Dernier message: 01/06/2009, 09h15
  3. const && header file
    Par kass28 dans le forum C++
    Réponses: 13
    Dernier message: 05/11/2007, 12h11
  4. Réponses: 5
    Dernier message: 19/08/2007, 19h02
  5. probleme de headers avec uBLAS de BOOST
    Par le_voisin dans le forum Boost
    Réponses: 6
    Dernier message: 06/09/2006, 18h15

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