Quelle est une bonne explication étape par étape sur la façon d'utiliser la bibliothèque Boost dans un projet vide dans Visual Studio ?
@Sorin : pourquoi auriez-vous besoin de changer ça ?
Quelle est une bonne explication étape par étape sur la façon d'utiliser la bibliothèque Boost dans un projet vide dans Visual Studio ?
Alors que Réponse de Nate est déjà assez bon, je vais le développer plus spécifiquement pour Visual Studio 2010 comme demandé, et inclure des informations sur la compilation dans les différents composants optionnels qui nécessitent des bibliothèques externes.
Si vous utilisez uniquement des bibliothèques d'en-têtes, il vous suffit de décompresser le téléchargement de boost et de configurer les variables d'environnement. L'instruction ci-dessous définit les variables d'environnement pour Visual Studio uniquement, et non pour l'ensemble du système. Notez que vous ne devez le faire qu'une seule fois.
C:\boost_1_47_0
).Microsoft.Cpp.<Platform>.user
et sélectionnez Properties
pour ouvrir la page des propriétés à modifier.VC++ Directories
à gauche.Include Directories
pour inclure le chemin d'accès à vos fichiers source de boost.Si vous voulez utiliser la partie de boost qui nécessite une construction, mais aucune des fonctionnalités qui nécessitent des dépendances externes, alors la construction est assez simple.
C:\boost_1_47_0
).bootstrap.bat
pour construire b2.exe (précédemment nommé bjam).Exécution b2 :
b2 --toolset=msvc-10.0 --build-type=complete stage
;b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
Faire une promenade / regarder un film ou 2 / ....
Library Directories
pour inclure le chemin d'accès à la sortie de vos bibliothèques Boost. (La valeur par défaut pour l'exemple et les instructions ci-dessus serait C:\boost_1_47_0\stage\lib
. Renommez et déplacez d'abord le répertoire si vous voulez avoir x86 et x64 côte à côte (comme pour <BOOST_PATH>\lib\x86
& <BOOST_PATH>\lib\x64
).Si vous voulez les composants optionnels, vous avez plus de travail à faire. Ce sont les suivants :
Boost.IOStreams Filtres Bzip2 :
C:\bzip2-1.0.6
).-sBZIP2_SOURCE="C:\bzip2-1.0.6"
lors de l'exécution de b2 à l'étape 5.Filtres Zlib Boost.IOStreams
C:\zlib-1.2.5
).-sZLIB_SOURCE="C:\zlib-1.2.5"
lors de l'exécution de b2 à l'étape 5.Boost.MPI
project-config.jam
dans le répertoire <BOOST_PATH>
qui résulte de l'exécution de bootstrap. Ajoutez une ligne qui dit using mpi ;
(notez l'espace avant le " ;").Boost.Python
Installez une distribution Python telle que ActivePython d'ActiveState. Assurez-vous que l'installation de Python est dans votre PATH.
Pour construire complètement la version 32-bits de la bibliothèque, il faut du Python 32-bits, et de même pour la version 64-bits. Si vous avez installé plusieurs versions pour cette raison, vous devrez indiquer à b2 où trouver une version spécifique et quand utiliser laquelle. Une façon de le faire serait d'éditer le fichier project-config.jam
dans le répertoire <BOOST_PATH>
qui résulte de l'exécution de bootstrap. Ajoutez les deux lignes suivantes en les ajustant en fonction de vos chemins d'installation et versions de Python (notez l'espace avant le ';').
using python : 2.6 : C:\\Python\\Python26\\python ;
using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;
Notez qu'une telle spécification explicite de Python fait actuellement échouer la construction de MPI. Vous devrez donc faire des constructions séparées avec et sans spécification pour tout construire si vous construisez aussi MPI.
Suivez la deuxième série d'instructions ci-dessus pour construire Boost.
Support de l'ICU Boost.Regex
C:\icu4c-4_8
).<ICU_PATH>\source\allinone
.-sICU_PATH="C:\icu4c-4_8"
lors de l'exécution de b2 à l'étape 5.
Il convient de noter que vous devez choisir Outils > Paramètres > Mode expert pour pouvoir afficher les feuilles de propriétés. Il m'a fallu quelques recherches sur Internet pour le découvrir...
@KTC : C'est en fait "Expert Settings", disponible dans le menu Tools > Settings. J'utilise VSC++ 2010 Express Edition et sans activer "Expert Settings" vous ne pouvez pas voir les feuilles de propriétés.
Alors que le instructions sur le site web de Boost sont utiles, voici une version condensée qui construit également des bibliothèques x64.
Ceci installe les fichiers d'en-tête de Boost sous C:\Boost\include\boost-(version)
et les bibliothèques 32 bits sous C:\Boost\lib\i386
. Notez que l'emplacement par défaut des bibliothèques est C:\Boost\lib
mais vous voudrez les mettre sous une i386
si vous envisagez de construire pour plusieurs architectures.
Dézippez Boost dans un nouveau répertoire.
Lancez une invite de commande MSVC 32 bits et passez dans le répertoire où Boost a été décompressé.
Cours : bootstrap
Cours : b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install
toolset=msvc-11.0
toolset=msvc-10.0
toolset=msvc-14.1
Añadir C:\Boost\include\boost-(version)
à votre chemin d'inclusion.
Añadir C:\Boost\lib\i386
à votre chemin des librairies.
Ceci installe les fichiers d'en-tête de Boost sous C:\Boost\include\boost-(version)
et les bibliothèques 64 bits sous C:\Boost\lib\x64
. Notez que l'emplacement par défaut des bibliothèques est C:\Boost\lib
mais vous voudrez les mettre sous une x64
si vous envisagez de construire pour plusieurs architectures.
bootstrap
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
toolset=msvc-11.0
toolset=msvc-10.0
C:\Boost\include\boost-(version)
à votre chemin d'inclusion.C:\Boost\lib\x64
à votre chemin des librairies.
Si vous ne voulez pas les construire vous-même, vous pouvez installer des binaires pré-construits depuis sourceforge : sourceforge.net/projets/boost/files/boost-binaires Pour chaque version de boost, il existe des installateurs pour chaque version de visual studio (en 32 et 64 bits).
Pourquoi utiliser architecture=x86 au lieu de architecture=x64 lors d'une compilation 64 bits ? EDIT : Je viens de le découvrir à la dure :P Vous ne pouvez pas passer en 64...
Hey, @teeks99 j'ai visité votre lien donné mais pour la version v1.4.7 j'ai trouvé trop de fichiers, lequel dois-je utiliser de toute façon ? n'est-ce pas mieux s'il y a un seul fichier (bibliothèque / dll) qui convient pour l'utilisation de toutes les fonctions de boost ?
Ceci multiplié par un million.... c'est ce que j'ai finalement fait comme effort combiné pour VS2015 : b2 -j%NUMBER_OF_PROCESSORS% toolset=msvc-14.0 --build-type=complete --libdir= C:\Boost\lib\x64 architecture=x86 address-model=64 install
Je pourrais vous recommander l'astuce suivante : Créez un fichier spécial boost.props
archivo
Cette procédure a pour valeur que boost est inclus seulement dans les projets où vous voulez explicitement l'inclure. Lorsque vous avez un nouveau projet qui utilise boost, faites :
EDIT (suite à l'édition de @jim-fred) :
Le résultat boost.props
ressemble à quelque chose comme ça...
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
</PropertyGroup>
<PropertyGroup>
<IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
<LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
</PropertyGroup>
</Project>
Il contient une macro utilisateur pour l'emplacement du répertoire boost (dans ce cas, D:\boost_1_53_0 ) et deux autres paramètres : IncludePath et LibraryPath. Une déclaration #include <boost/thread.hpp>
trouverait thread.hpp dans le répertoire approprié (dans ce cas, D:\boost_1_53_0\boost\thread.hpp ). Le "stage \lib\ Le répertoire ' peut changer en fonction du répertoire dans lequel il est installé.
Ce fichier boost.props pourrait être situé dans le répertoire D:\boost_1_53_0\
répertoire.
De quelles parties de Boost avez-vous besoin ? Beaucoup de choses font partie de TR1 qui est livré avec Visual Studio, donc vous pouvez simplement dire, par exemple :
#include <tr1/memory>
using std::tr1::shared_ptr;
Selon James, cela devrait également fonctionner (en C++0x) :
#include <memory>
using std::shared_ptr;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
Démarrage sous Windows