Comment installer Boost sur Ubuntu

489

Je suis sur Ubuntu et je souhaite installer Boost. J'ai essayé avec

sudo apt-get install boost

Mais il n'y avait pas un tel paquet. Quelle est la meilleure façon d'installer Boost sur Ubuntu?

k53sc
la source

Réponses:

850

Vous pouvez utiliser la apt-getcommande (nécessite sudo)

sudo apt-get install libboost-all-dev

Ou vous pouvez appeler

aptitude search boost

recherchez les packages dont vous avez besoin et installez-les à l'aide de la apt-getcommande.

Anton Guryanov
la source
3
avez-vous une expérience passée avec boost?
k53sc
1
J'avais une expérience de programmation avec boost, mais pas d'expérience d'installation. Je n'ai jamais essayé cela moi-même, donc je ne peux pas dire s'il est facile à utiliser (mais il me semble que le gestionnaire de paquets est le moyen le plus simple). J'aurais dû poster cette suggestion en tant que commentaire, mais je ne peux pas commenter les questions.
Anton Guryanov,
72
Le seul inconvénient de l'utilisation d'apt-get est qu'il se trouve généralement à quelques versions derrière la dernière version boost.
Ralf
6
Il est facile de construire et d'installer Boost à partir des sources, par exemple anycoder.wordpress.com/2014/04/28/building-boost
Andrew Selivanov
5
N'utilisez pas la version packagée de boost, en ce moment sur Ubuntu 16.04 c'est 1.58, et la dernière version stable est 1.67.0! Voir la réponse et mon commentaire ci-dessous: stackoverflow.com/a/41272796/2617716
Jeb
182

Obtenez la version de Boost dont vous avez besoin. C'est pour 1.55 mais n'hésitez pas à changer ou à télécharger manuellement vous-même:

wget -O boost_1_55_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0/

Obtenez les bibliothèques requises, les principales sont icupour le boost::regexsupport:

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev

Configuration de bootstrap de Boost:

./bootstrap.sh --prefix=/usr/

Ensuite, construisez-le avec:

./b2

et éventuellement l'installer:

sudo ./b2 install
user3715812
la source
2
Quelle sera la différence si nous utilisons ./bootstrap.sh --prefix = / usr / include? J'ai la bibliothèque de boost dans / usr / include. Je me demandais qu'en faisant cela, puis-je remplacer mon ancienne installation?
Sai
40
qu'est-ce que libboost-all-dev? pourquoi devrais-je installer boost avant d'installer boost?
javapowered le
23
./b2 installdevrait également être exécuté comme étape finale
javapowered
21
@ tbc0 Boost est à la version 1.59 maintenant, et le dernier PPA est à 1.55, donc la construction à partir de la source est pertinente
TemplateRex
5
@TemplateRex Je retire mon commentaire. J'ai défait mon downvote.
tbc0
83

Installation de Boost sur Ubuntu avec un exemple d'utilisation boost::array:

Installez libboost-all-dev et aptitude:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

Collez-le ensuite dans un fichier C ++ appelé main.cpp:

#include <iostream>
#include <boost/array.hpp>

using namespace std;
int main(){
  boost::array<int, 4> arr = {{1,2,3,4}};
  cout << "hi" << arr[0];
  return 0;
}

Compilez comme ceci:

g++ -o s main.cpp

Exécutez-le comme ceci:

./s

Impressions du programme:

hi1
Eric Leschinski
la source
3
Il y a une erreur dans la ligne "boost :: array <int, 4> arr = {{1,2,3,4}};", il doit s'agir de "boost :: array <int, 4> arr = {1 , 2,3,4}; "
szulak du
36
pourquoi je veux courir aptitude search boost?
Leedehai
24

Obtenez la version de Boost dont vous avez besoin. C'est pour 1.55 mais n'hésitez pas à changer ou à télécharger manuellement vous-même (page de téléchargement Boost) :

wget -O boost_1_55_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0 /

Obtenez les bibliothèques requises, les principales sont icu pour le support boost :: regex:

mise à jour sudo apt-get
sudo apt-get install build-essential g ++ python-dev autotools-dev libicu-dev libbz2-dev 

Configuration de bootstrap de Boost:

./bootstrap.sh --prefix = / usr / local

Si nous voulons MPI, nous devons définir l'indicateur dans le fichier user-config.jam:

user_configFile = `find $ PWD -name user-config.jam`
echo "using mpi;" >> $ user_configFile

Trouvez le nombre maximum de cœurs physiques:

n = `cat / proc / cpuinfo | grep "cpu cores" | uniq | awk '{print $ NF}' '

Installez boost en parallèle:

sudo ./b2 --with = all -j $ n install 

Suppose que vous avez déjà installé / usr / local / lib . sinon, vous pouvez l'ajouter à votre CHEMIN DE BIBLIOTHÈQUE LD :

sudo sh -c 'echo "/ usr / local / lib" >> /etc/ld.so.conf.d/local.conf'

Réinitialisez le ldconfig:

sudo ldconfig
Ahmed Elcheikh
la source
1
Certaines choses telles que PO Edit 2.0 nécessitent un boost 1.6, qui n'est pas disponible pour le moment via apt-get, vous pouvez l'obtenir sur boost.org/users/history/version_1_60_0.html , puis le développer. Suivez les excellentes instructions ci-dessus, en vous rappelant que le chemin d'accès à la bibliothèque LD n'est pas le même que $ PATH
Andrew Killen
Veuillez modifier le lien vers HTTPS; HTTP n'est pas sûr pour les téléchargements binaires :)
Clément
1
Commentaire d'une installation récente, pour obtenir la dernière version: - Allez sur boost.org et téléchargements "Version actuelle" pour obtenir la dernière (actuellement 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source /… ) Merci!
Jeb
haha cela bousille mon système pour de bon. je pense que ce sont les 2 derniers articles.
thang
l'ancien lien vers sourceforge ne fonctionne pas. utilisez dl.bintray.com/boostorg/release/1.72.0/source/… (avec la version nécessaire)
Victor Gavro
18

Une mise à jour pour l'application Ubuntu Windows 10 via le sous-système (fonctionne également sur Ubuntu standard):

Vous pourriez avoir des problèmes pour trouver le package. Si vous le faites, n'ayez crainte! PPA est là!

sudo add-apt-repository ppa:boost-latest/ppa
sudo apt-get update

Exécutez ensuite:

sudo apt-get install libboost-all-dev
x4g0tt3nSou1x
la source
1
OP n'a pas demandé Win10.
Adrian W
9
Je suis au courant, en postant pour ceux (comme moi) qui recherchaient une solution complète. Semblable à Алексей Штыков's Answer
x4g0tt3nSou1x
7
@AdrianW cette réponse ne concerne pas Windows 10. Il s'agit d' Ubuntu qui s'exécute sur un noyau Windows 10 , c'est donc une solution valable pour ceux qui exécutent Ubuntu d'une certaine manière. Comme la question ne l'a pas limité à Ubuntu fonctionnant spécifiquement sur un noyau Linux, cette solution est très bien.
Chai T. Rex
1
Le référentiel ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' n'a pas de fichier Release.
user239558
1

En fait, vous n'avez pas besoin d'installer ou de compiler quoi que ce soit avant d'utiliser Boost dans votre projet. Vous pouvez simplement télécharger et extraire la bibliothèque Boost à n'importe quel emplacement sur votre machine, ce qui est généralement le cas /usr/local/.

Lorsque vous compilez votre code, vous pouvez simplement indiquer au compilateur où trouver les bibliothèques -I. Par exemple g++ -I /usr/local/boost_1_59_0 xxx.hpp,.

jimmy.zhao
la source
10
Cela ne fonctionnerait que pour les bibliothèques d'en-têtes de boost. Les autres devraient être construits ou installés à l'aide d'un gestionnaire de packages comme décrit dans les réponses ci-dessus. Les bibliothèques boost qui nécessitent une construction et une installation distinctes sont les suivantes: atomic, chrono, container, context, coroutine, coroutine2, date_time, exception, filesystem, graph, graph_parallel, iostreams, locale, log, math, mpi, program_options, python, random , regex, sérialisation, signaux, système, test, thread, timer, type_erasure, wave.
Elias Kouskoumvekakis
Même réparer cette solution en suivant les instructions supplémentaires d'Elias Kouskoumvekakis serait une mauvaise idée (sauf si vous avez une bonne raison), car les gestionnaires de packages ajoutent la possibilité de mettre à jour très facilement Boost vers des versions plus récentes (dans Ubuntu, juste sudo apt update; sudo apt upgradepour mettre à niveau tous vos packages vers les dernières versions dans les référentiels) si vous trouvez le référentiel de packages approprié pour Boost et pour supprimer très facilement Boost du système si vous le souhaitez. L'approche manuelle rend ces tâches plus difficiles, vous avez donc besoin d'une bonne raison pour ignorer les avantages d'un gestionnaire de packages.
Chai T. Rex
1
De plus, l'installation sans gestionnaire de packages est mieux couverte dans une réponse précédente , qui comprend les instructions de construction nécessaires.
Chai T. Rex