Premiers pas avec boost
Installation ou configuration
Voir [Boost Mise en route][1].
La plupart des bibliothèques Boost ne contiennent que des en-têtes, ce qui signifie qu’il n’y a rien à compiler ou à lier.
Assurez-vous d’avoir la version la plus récente de Boost :
- Visitez [www.boost.org][2]
- Recherchez le téléchargement de la version actuelle. Actuellement, cela renvoie [ici][3]. [![Montre où sur le site Web boost vous pouvez télécharger Boost][4]][4]
- Sélectionnez le fichier d’archive approprié pour votre système d’exploitation et téléchargez-le.
Les bibliothèques d’en-tête uniquement peuvent ensuite être utilisées en incluant simplement les fichiers d’en-tête respectifs.
Quelques bibliothèques Boost nécessitent une compilation :
- Boost.Chrono
- Boost.Context
- Boost.Filesystem
- Boost.GraphParallel
- Boost.IOStreams
- Boost.Local
- Boost.MPI
- Boost.ProgramOptions
- Boost.Python
- Boost.Regex
- Boost.Sérialisation
- Boost.Signaux
- Boost.Système
- Boost.Thread
- Boost.Timer
- Boost.Wave
De plus, les bibliothèques suivantes ont des composants qui doivent être compilés :
- Boost.DateHeure
- Boost.Graph
- Boost.Math
- Boost.Random
- Boost.Test
- Boost.Exception
[1] : http://www.boost.org/doc/libs/1_61_0/more/getting_started/index.html [2] : http://www.boost.org [3] : https://sourceforge.net/projects/boost/files/boost/1.61.0/ [4] : http://i.stack.imgur.com/90rM7.png
La source de Boost peut être obtenue via le lien de téléchargement sur le site, qui redirigera vers sa [page SourceForge](https://sourceforge .net/projects/boost/files/boost/) pour la dernière version (1.61.0 à partir de juillet 2016). Cela peut être décompressé (ou non taré, etc.) dans un répertoire (tel que C:\local\boost_1_61_0). Ce répertoire peut ensuite être ajouté au chemin d’inclusion du logiciel que vous construisez. Après cela, vous pouvez inclure des en-têtes Boost dans les fichiers C++ avec #include <boost/header/path.hpp>
.
La majorité des bibliothèques de Boost sont uniquement en-tête. Si vous n’avez besoin que de ceux-ci, la distribution source ci-dessus est tout ce dont vous avez besoin. Cependant, si vous avez besoin d’utiliser l’une des bibliothèques qui nécessite la construction d’un binaire compilé, vous en aurez également besoin.
Sur n’importe quel système, le moyen le plus fiable d’obtenir les bons binaires est de les construire vous-même. Ces instructions sont quelque peu différentes pour Windows ou Linux/Unix/POSIX.
Sous Windows avec Visual Studio, une alternative à la construction des bibliothèques vous-même consiste à télécharger des bibliothèques pré-construites à partir de la page SourceForge de Boost (1.61. 0 depuis juillet 2016). Sur cette page, vous pouvez sélectionner un programme d’installation qui installera une version pour une version spécifique de Visual Studio ou le fichier 7-zip (boost_X_XX_X-bin-all-32-64.7z) qui contient les fichiers binaires pour toutes les versions de Visual Studio prises en charge. Chacune de ces options inclut la source/les en-têtes ainsi que les binaires, il n’est donc pas nécessaire d’avoir téléchargé la distribution source ci-dessus. Une fois que vous l’avez, extrayez/installez dans un répertoire (tel que C:\local\boost_1_61_0) et ajoutez ce répertoire à votre chemin d’inclusion, puis ajoutez le répertoire contenant les fichiers binaires correspondant à votre version de Visual Studio (par exemple, C:\ local\boost_1_61_0\lib32-msvc-12.0 pour les projets Visual Studio 2013 32 bits) au chemin de la bibliothèque.
Installation et exécution de Boost (Cygwin)
(Niveau débutant ; IDE : CLion)
Tout d’abord, installez boost à partir du miroir Cygwin : ouvrez l’exe d’installation, recherchez boost, installez les packages.
Une fois boost installé : il sera situé dans /usr/include/boost
. C’est là que tout est. Toutes les instructions #include
seront un chemin depuis le dossier boost, comme dans : #include <boost/archive/text_oarchive.hpp>
.
Une fois que vous avez inclus les fichiers boost de votre choix dans vos fichiers .cpp
, votre code ne sera toujours pas compilé dans l’IDE de votre choix tant que vous n’aurez pas lié [les bibliothèques][1] et indiqué à [cmake de rechercher votre code boost téléchargé][2].
Pour que cmake recherche votre code boost,
find_package(Boost 1.60.0 COMPONENTS components_you_want)
# for example:
find_package(Boost 1.60.0 COMPONENTS serialization)
Ensuite, incluez les répertoires : include_directories(${Boost_INCLUDE_DIRS})
Enfin, ajoutez votre exécutable et liez les bibliothèques :
add_executable(your_target ${SOURCE_FILES})
target_link_libraries(your_target ${Boost_LIBRARIES} -any_missing_boostlibs)
Avant de démarrer votre programme, évitez un vidage d’erreur en testant pour voir si boost a été trouvé avant d’inclure quoi que ce soit ou d’exécuter votre code :
if (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(YourTarget ${SOURCE_FILES})
target_link_libraries(your_target ${Boost_LIBRARIES} -missing_libs)
endif()
J’ai inclus -missing_libs
car une erreur que vous pouvez rencontrer est qu’une bibliothèque boost ou une autre n’a peut-être pas été liée, et vous devez l’ajouter manuellement - par exemple, le [link][1] auquel j’ai fait référence plus tôt.
Tous ensemble, un fichier CMakeLists.txt final pourrait ressembler à :
cmake_minimum_required(VERSION 3.7)
project(your_project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp tmap.cpp tmap.h)
find_package(Boost 1.60.0 COMPONENTS serialization)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(your_project ${SOURCE_FILES})
target_link_libraries(your_project ${Boost_LIBRARIES})
endif()
[1] : http://stackoverflow.com/questions/13467072/c-boost-undefined-reference-to-boostsystemgeneric-category#13468280 [2] : http://stackoverflow.com/questions/3808775/cmake-doesnt-find-boost