Comment obtenir les binarys des bibliothèques Boost qui fonctionnent avec Visual Studio?

Voici une question que vous avez peut-être vue autour des filets sous diverses formes … résumées ici pour votre plaisir de googler 🙂

J’ai un projet qui est construit avec Visual Studio de Microsoft et utilise des fonctionnalités de boost ( http://www.boost.org/ ). J’ai déjà mon projet qui travaille avec certaines des bibliothèques qui sont en-tête seulement (aucune bibliothèque binary ne doit être liée avec). Comment ou où puis-je obtenir les binarys Windows pour les autres bibliothèques?

Il y a trois options différentes pour accéder aux bibliothèques binarys:

1) Construisez-les à partir de la source.
Allez dans le répertoire boost et lancez:

bootstrap .\bjam 

Ou soyez plus compliqué et faites quelque chose comme:

  bjam --stagedir="c:\Program Files\Boost" --build-type=complete --toolset=msvc-9.0 --with-regex --with-date_time --with-thread --with-signals --with-system --with-filesystem --with-program_options stage 

2) Utilisez le programme d’installation de BoostPro ( http://www.boostpro.com/download ) pour obtenir les bibliothèques spécifiques dont vous avez besoin.
C’est très bien car il ne fait que télécharger et installer les fichiers que vous dites vouloir. Cependant, la version la plus récente n’est jamais disponible et il n’y a pas de binarys 64 bits.

3) Télécharger l’ensemble des bibliothèques ( http://boost.teeks99.com )
Facile à utiliser, simple à faire, mais les bibliothèques sont énormes (7 Go décompressés!).
Edit 2013-05-13: Mes builds sont maintenant disponibles (à partir de 1.53) directement depuis la page sourceforge .

conda-forge (outil automatisé de création de cloud multi-plateforme et gestionnaire de paquets) fournit des binarys pour toutes les principales plates-formes:

https://anaconda.org/conda-forge/boost

Vous pouvez maintenant obtenir des binarys Boost à partir de:

http://sourceforge.net/projects/boost/files/boost-binaries/

Cependant, ils ne spécifient pas s’il s’agit d’une version release ou debug.

Je préférais utiliser BoostPro pour installer les bibliothèques Boost nécessitant une compilation séparée, comme Boost.Regex, mais hélas, cela ne semble plus être supporté.

Allez à la page Boost Getting Started pour Windows , elle vous indique à peu près tout ce que vous devez savoir dans la section 5.2.1 . Voici un guide simple (avec des captures d’écran) qui vous montre comment démarrer.

Pour résumer, depuis l’invite de commandes, vous devez exécuter les commandes suivantes:

 > boostrap.bat > .\b2 

L’exécution de la commande. \ B2 peut prendre un certain temps.

Et puis, dans les propriétés de votre projet Visual Studio, vous devrez:

  1. Sélectionnez l’onglet C / C ++> Général et définissez le champ Inclure les répertoires supplémentaires.
  2. Sélectionnez l’onglet Éditeur de liens> Général et définissez le champ Répertoires de bibliothèque supplémentaires.

Pour l’étape 2, il s’agit généralement du répertoire stage \ lib de votre répertoire racine Boost.

Construis-les toi-même. Téléchargez un exécutable bjam à partir du site Web de boost, puis exécutez la commande suivante à partir du répertoire racine boost src:

bjam –toolset = msvc –build-type = complete define = _BIND_TO_CURRENT_MFC_VERSION = 1 define = _BIND_TO_CURRENT_CRT_VERSION = 1 étape

Ensuite, allez prendre un café ou laissez-le courir toute la nuit. Après cela, vous obtenez des résultats dans le dossier ‘stage’. Ajoutez ce répertoire à vos «fichiers de bibliothèque» dans les options-> projets et solutions-> répertoires VC ++.

1) naviguer dans le répertoire boost

2) exécuter bootstrap – note: bjam ne semble pas fonctionner à ce stade, mais peut-être que j’ai fait quelque chose de mal

3) exécutez. \ B2 ceci devrait configurer le boost par défaut à ce qu’il détecte comme jeu d’outils Windows principal, ou peut-être le plus récent, donc pour moi c’est msvc11.0

alors vous attendez un peu, et le tour est joué!

Comme indiqué ci-dessus, incluez simplement les répertoires des librairies boost (D: \ boost_1_5x_x \ stage \ lib) et incluez ceux que vous utilisez dans les champs Répertoires supplémentaires respectifs. Vous n’avez pas besoin de le faire nécessairement à partir de “C / C ++” ou “Linker”. il existe un en-tête VC ++ qui contient tous les champs pertinents. vous pouvez également, si vous utilisez régulièrement boost, les inclure dans la liste des répertoires hérités

** edit: je viens juste de réaliser que le message ci-dessus le décrit. Vraiment désolé.