Chomado's Blog
You Are Reading

【C++】Mac に Boost を インストールした

0
C++

【C++】Mac に Boost を インストールした


C++ で HTTP 通信がしたくなったのですが, その目的に関しては C++ の標準ライブラリには便利なものが用意されていないらしいので, 泥臭い処理は自分で書きたくないからライブラリ使いたいので色々調べた結果, Boost.Asio (ネットワーク系を頑張ってるライブラリ) をラップした cpp-netlib というライブラリが便利そうなので, 使ってみることにしました.
このライブラリは Boost をフルに使ったものらしいので, まずは Boost インストール から始めます.

目次

  1. Boost って何?
  2. まずは Boost インストール
  3. Boost ビルド
  4. 次の日: 動かしてみる

Boost って何?

私は C++ ガチ初心者なので本当によく分からないのですが, なんだか

「C++ すごい人たちが 皆 こぞって使っている スーパー C++ ライブラリ」

というイメージです!(((o(*゚▽゚*)o))) (多分これで合ってる.)

Boost とは C++ の機能を拡張するライブラリの一種です.
標準ライブラリではなく『準標準』ライブラリ, というイメージです.

以下『Boost | C++入門』から引用

Boost は、C++のライブラリ開発者のコミュニティとオープンソースのライブラリの名前です。C++に新しい機能を提供します。また、新しい機能の実験場としても機能しています。C++11やC++14などにBoostの成果が取り込まれています。

概要
Boostは、C++の規格への影響やC++の標準ライブラリの実験場として機能しています。C++11やC++14など、いろいろな影響を受けて実装されています。
Boost のライセンスは、 Boost Software License です。 商用、非商用を問わず、無償で利用できます。
http://kaworu.jpn.org/cpp/Boost

以下 Boost | Wikipedia から引用

Boost (ブースト)とは、C++の先駆的な開発者のコミュニティ、及びそのコミュニティによって公開されているオープンソースライブラリのことを指す。コミュニティとしてのBoostはC++標準化委員会の委員により設立されており、現在でもその多くが構成員として留まっている。このような経緯もあってBoostコミュニティはC++の標準化に対してかなりの影響力を有している。実際に標準化委員会の発表した「TR1」の2/3以上がBoostライブラリを基にしている。このことからBoostはC++の標準化にあたり有効なアイデアをテストする場であるとも言える。

http://ja.wikipedia.org/wiki/Boost

まずは Boost インストール

取り敢えず私は Mac ユーザなので, HomeBrew で入れようと思いました.

% brew update –all

した後に, 『boost』で search してみました.

% brew search boost
boost boost-build boost149 boost155
boost-bcp boost-python boost150
Caskroom/cask/iboostup Caskroom/cask/pivotalbooster

スクリーンショット 2015-05-21 2.26.22

( ゚д゚)ポカーン

どれだよwwwwwwwwwwwwww

無印の boost だろうか…?
それともなんか一番数字が大きい boost155 だろうか…?
それとも boost-build とかいうやつかなあ

初心者にはどれがどれやら全く分からないヽ(;▽;)ノ

ちょっと怖いので, 無難に公式サイトからダウンロードボタン押して入れることにしました.

http://www.boost.org/

スクリーンショット 2015-05-21 2.34.37

スクリーンショット 2015-05-21 2.35.14

これで ダウンロードフォルダに zip が入ったはずなので, 取り敢えず解凍しておきます.

Boost ビルド

落としてきた zip を解凍したら, 次は build します.

やり方はこの記事を参考にしました.
Macにboostをインストールする(ソースからビルド) | ftvlog

% cd ~/Downloads/boost_1_58_0/
% ./bootstrap.sh

↓ 出力
スクリーンショット 2015-05-21 2.41.04

% sudo ./b2 install -j4 –prefix=/opt/local

スクリーンショット 2015-05-21 3.07.23

で, ビルドが始まるのですが,
めちゃくちゃ時間かかります…CPUファンの音がブオオオオって止まらなくなるし, コンソールの出力がけたたましい

とのことで, このまま放置して寝ようと思います!

明日起きた頃には Boost が使えるようになっているでしょう. (現在午前3:30)
(¦3[___] おやすみなさいませ

次の日: 動かしてみる

ちゃんとインストールできていました! わーい! やったー!

サンプルコード: boost::sort | C++入門 より

#include <iostream>
#include <boost/foreach.hpp>
#include <vector>

#include <boost/range/algorithm.hpp>

using namespace std;

void dump(vector<int>& v)
{
    BOOST_FOREACH(int x, v) {
        cout << x << endl;
    }
}

int main (int argc, char *argv[])
{
    vector<int> v;
    
    v.push_back ( 3 );
    v.push_back ( 4 );
    v.push_back ( 1 );
    v.push_back ( 2 );
    
    cout << "Before sort" << std::endl;
    dump (v);
    
    boost::sort(v);
    
    cout << "After sort" << std::endl;
    dump (v);
    return 0;
}

コンパイル:

% g++ -I/opt/local/include test.cpp

私はビルド時に path を『–prefix=/opt/local』と指定したので,
-I/opt/local/include
って指定するのが良いみたいです.

で, 実行:

% ./a.out
Before sort
3
4
1
2
After sort
1
2
3
4

動いた!ヽ(ヽ *゚▽゚*)ノわーい!


Madoka Chomado (ちょまど)

千代田まどかです。よく「ちょまど」と呼ばれます。Microsoft 社員。文系出身プログラマ兼マンガ家です。

(8) Comments

  1. 匿名 says:

    brew update –all にsudoは要らないのでは

    1. あっ!! ありがとうございます! 修正します

  2. 匿名 says:

    Booost.asioの記事、是非初心者目線で解説して下さい!

    1. あわわ〜, 記事になるような内容が書けるか分かりませんが…
      いじれたらぜひ文章に残したいと思います! ありがとうございます!

  3. 参考にさせていただき,無事インストールできました!
    ありがとうございます!

    –prefixを指定しなければ
    > g++ test.cpp
    でコンパイルできるみたいですね.どこに入ったのか知りませんが…

    1. わあ! 良かったです! 嬉しいです! 報告ありがとうございます!

  4. tyuu shinn says:

    Thank you for your tutorial

  5. […] 【C++】Mac に Boost を インストールした – Chomado's Blog […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です