2010-03-25 3 views
5

Quelles sont les meilleures pratiques pour inclure la bibliothèque de pointeurs intelligents seulement sans ajouter toutes les bibliothèques de boost dans le projet? Je veux seulement booster la bibliothèque de pointeurs intelligents dans mon projet et je ne veux pas enregistrer/valider 200 Mo les codes source (boost 1.42.0) dans mon référentiel de projet juste pour ça. De plus, mon projet Windows Mobile n'atteint même pas 10% de cette taille!Comment inclure uniquement les codes de pointeurs intelligents BOOST dans un projet?

+1

Avez-vous besoin de Boost pour être sous contrôle de la source du tout? – jalf

+0

Je suis le premier dans l'équipe à utiliser boost et tout le monde n'est pas encore familier avec boost. Si je commets quelque chose qui ne se compile pas (absence de dépendances), cela serait gênant pour eux. –

+1

Je pense habituellement, vous auriez des gens installer Boost sur leurs boîtes. C'est, le traiter comme la bibliothèque standard. Ensuite, il n'y a pas besoin de s'engager, et maintenant c'est toujours là. – GManNickG

Répondre

16

Pour la bibliothèque de pointeurs intelligents, vous avez deux options.

  1. Copiez les en-têtes que vous incluez dans vos fichiers source (shared_ptr.hpp, etc.). Ensuite, copiez sur des fichiers supplémentaires jusqu'à la construction du projet (assurez-vous de maintenir la structure du répertoire). Utilisez l'utilitaire bcp de boost. Pour les sous-ensembles plus importants, cet outil permet d'économiser beaucoup de temps.

Le premier s'assurera que le plus petit nombre de fichiers possible sera ajouté à votre projet. Ce dernier est beaucoup plus rapide pour tout sous-ensemble substantiel de boost, mais il inclura probablement de nombreux fichiers dont vous n'avez pas besoin (en-têtes de compatibilité pour les plates-formes que votre programme ne supporte pas).

+3

Première fois que j'entends parler de bcp. +1 – BenG

+1

agréable. peut-être que je peux d'abord utiliser bcp, puis le réduire manuellement. non 2, puis non 1. –

2

Vérifiez simplement dans le dossier contenant le code que vous voulez? Essayez de supprimer/déplacer/renommer "tout le reste" et voir quelles dépendances externes la bibliothèque de pointeurs intelligents a, probablement pas beaucoup. Je suis presque certain qu'il ne nécessite aucun code intégré (c'est-à-dire des bibliothèques), donc il suffit de cocher tous les en-têtes inclus.

+0

Il donne certainement le nombre minimum de fichiers à inclure. J'ai commencé par ajouter un fichier, , et je continue à ajouter tous les fichiers de dépendance un par un jusqu'à ce que 36 fichiers aient été ajoutés (139 Ko). Pour comparaison, bcp shared_ptr me donne 152 fichiers (481 Ko). –

Questions connexes