UbuntuにBoostをインストールする方法


489

Ubuntuを使用していて、Boostをインストールしたい。私が試した

sudo apt-get install boost

しかし、そのようなパッケージはありませんでした。UbuntuにBoostをインストールする最良の方法は何ですか?

回答:


850

apt-getコマンドを使用できます(が必要ですsudo

sudo apt-get install libboost-all-dev

またはあなたは電話することができます

aptitude search boost

必要なパッケージを見つけて、apt-getコマンドを使用してインストールします。


3
ブーストの過去の経験はありますか?
k53sc 2012

1
boostのプログラミング経験はありましたが、インストールの経験はありませんでした。私はこれを自分で試したことがないので、使いやすいかどうかはわかりません(しかし、パッケージマネージャーが最も簡単な方法であるように思えます)。この提案をコメントとして投稿するべきでしたが、質問にコメントすることはできません。
Anton Guryanov 2012

72
apt-getを使用することの1つの欠点は、通常、最新のブーストリリースの背後にあるいくつかのバージョンであることです。
ラルフ

6
ソースからBoostをビルドしてインストールするのは簡単です。たとえば、anycoder.wordpress.com / 2014/04/28 / building
Andrew Selivanov

5
ブーストのパッケージバージョンを使用しないでください。現在、Ubuntu 16.04では1.58であり、最新の安定バージョンは1.67.0です!以下の応答と私のコメントを参照してください:stackoverflow.com/a/41272796/2617716
Jeb

182

必要なバージョンのBoostを入手してください。これは1.55用ですが、自由に変更するか、手動でダウンロードしてください。

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/

必要なライブラリを入手します。主なものはサポートicu用ですboost::regex

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

Boostのブートストラップ設定:

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

次にそれをビルドします:

./b2

そして最終的にそれをインストールします:

sudo ./b2 install

2
./bootstrap.sh --prefix = / usr / includeを使用するとどうなりますか?/ usr / includeにboostライブラリがあります。これを行うことで、古いインストールを置き換えることはできますか?
2014年

40
libboost-all-devとは何ですか?boostをインストールする前にboostをインストールする必要があるのはなぜですか?
javapowered 2015

23
また./b2 install、最終ステップとして実行する必要があります
javapowered '10 / 10/15

21
@ tbc0 Boostは現在バージョン1.59であり、最新のPPAは1.55であるため、ソースからのビルドが適切です
TemplateRex

5
@TemplateRexコメントを取り消します。私は自分の反対票を取り消しました。
tbc0 2017

83

使用例を含むUbuntuへのBoostのインストールboost::array

libboost-all-devとaptitudeをインストールします:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

次に、これをC ++ファイルに貼り付けます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;
}

次のようにコンパイルします。

g++ -o s main.cpp

次のように実行します。

./s

プログラムのプリント:

hi1

3
「boost :: array <int、4> arr = {{1,2,3,4}};」という行にエラーがあります。「boost :: array <int、4> arr = {1 、2,3,4}; "
szulak 2015年

36
なぜ走りたいのaptitude search boost
リーデハイ2017

24

必要なバージョンのBoostを入手してください。これは1.55用ですが、自由に変更するか、手動でダウンロードしてください(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 /

必要なライブラリを取得します。主要なライブラリはboost :: regexサポート用のicuです。

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

Boostのブートストラップ設定:

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

MPIが必要な場合は、user-config.jamファイルにフラグを設定する必要があります。

user_configFile = `$ PWDを見つける-name user-config.jam`
echo "mpiを使用して;" >> $ user_configFile

物理コアの最大数を見つけます。

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

ブーストを並行してインストールします。

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

/ usr / local / libがすでにセットアップされていると仮定します。そうでない場合は、LD LIBRARY PATHに追加できます。

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

ldconfigをリセットします。

sudo ldconfig

1
PO Edit 2.0などのいくつかのものはboost 1.6を必要としますが、現時点ではapt-getを介して使用できません。boost.org / users / history / version_1_60_0.htmlからこれを取得して展開できます。上記の優れた手順に従い、LDライブラリパスは$ PATHと同じではないことを思い出してください
Andrew Killen

リンクをHTTPSに変更してください。HTTPは:)バイナリのダウンロードのために安全ではありません
クレマン

1
最新バージョンを取得するには、最近のインストールからのコメント:-boost.orgおよび「現在のリリース」のダウンロードに移動して、最後のバージョン(現在は1.67.0: dl.bintray.com/boostorg/release/1.67.0/source)。 /…)ありがとう!
2018

これは私のシステムを完全に台無しにします。最後の2つだと思います。
タン

sourceforgeへの古いリンクが機能していません。dl.bintray.com/boostorg/release/1.72.0/source/…(必要なバージョンを使用)を使用
Victor Gavro

18

サブシステム経由のWindows 10 Ubuntuアプリケーションの更新(標準のUbuntuでも機能します):

パッケージの検索に問題がある可能性があります。あなたがそうするならば、決して恐れないでください!PPAが登場!

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

次に実行します:

sudo apt-get install libboost-all-dev

1
OPはWin10を要求しませんでした。
エイドリアンW

9
私は承知しており、丸められた解決策を探していた(私のように)それらのために投稿します。
АлексейШтыков

7
@AdrianWこの答えはWindows 10に関するものではありません。Windows10 カーネルで実行されているUbuntuに関するものであるため、何らかの方法でUbuntuを実行している人にとって有効なソリューションです。この質問では、特にLinuxカーネルで実行されているUbuntuに限定されていなかったため、このソリューションは問題ありません。
チャイT.レックス

1
リポジトリ ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release'にはリリースファイルがありません。
user239558

1

実際、プロジェクトでBoostを使用する前に、何も「インストール」または「コンパイル」する必要はありません。Boostライブラリをダウンロードして、マシンの任意の場所に抽出できます/usr/local/

コードをコンパイルするときは、ライブラリを検索する場所をでコンパイラに示すことができます-I。たとえば、g++ -I /usr/local/boost_1_59_0 xxx.hpp


10
これは、boostのヘッダーライブラリに対してのみ機能します。上記の回答で説明されているように、残りのパッケージはパッケージマネージャーを使用してビルドまたはインストールする必要があります。別のビルドとインストールを必要とするブーストライブラリは次のとおりです:アトミック、クロノ、コンテナー、コンテキスト、コルーチン、コルーチン2、date_time、例外、ファイルシステム、グラフ、グラフパラレル、iostream、ロケール、ログ、数学、mpi、プログラムオプション、python、ランダム、正規表現、シリアル化、信号、システム、テスト、スレッド、タイマー、type_erasure、wave。
エリアスKouskoumvekakis 16年

ただでさえ、(あなたが良いの理由がない限り)、パッケージマネージャがUbuntuの中で(新しいバージョンに非常に簡単に更新・ブーストに機能を追加するので、悪いアイデアだろうエリアスKouskoumvekakisのさらなる指示に従うことによって、このソリューションを修復sudo apt update; sudo apt upgradeアップグレードするために、すべてにあなたのパッケージをリポジトリの最新バージョン)Boostに適切なパッケージリポジトリを見つけ、必要に応じてシステムからBoostを非常に簡単に削除する場合。手動のアプローチではこれらのタスクが困難になるため、パッケージマネージャーの利点をスキップするための十分な理由が必要です。
Chai T. Rex

1
また、パッケージマネージャーを使用せずにインストールする方法については、必要なビルド手順を含む以前の回答でカバーされています
Chai T. Rex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.