C++ で HTTP 通信がしたくなったのですが, その目的に関しては C++ の標準ライブラリには便利なものが用意されていないらしいので, 泥臭い処理は自分で書きたくないからライブラリ使いたいので色々調べた結果, Boost.Asio (ネットワーク系を頑張ってるライブラリ) をラップした cpp-netlib というライブラリが便利そうなので, 使ってみることにしました.
このライブラリは Boost をフルに使ったものらしいので, まずは Boost インストール から始めます.
目次
Boost って何?
私は C++ ガチ初心者なので本当によく分からないのですが, なんだか
「C++ すごい人たちが 皆 こぞって使っている スーパー C++ ライブラリ」
というイメージです!(((o(*゚▽゚*)o))) (多分これで合ってる.)
Boost とは C++ の機能を拡張するライブラリの一種です.
標準ライブラリではなく『準標準』ライブラリ, というイメージです.
以下『Boost | C++入門』から引用
概要
Boostは、C++の規格への影響やC++の標準ライブラリの実験場として機能しています。C++11やC++14など、いろいろな影響を受けて実装されています。
Boost のライセンスは、 Boost Software License です。 商用、非商用を問わず、無償で利用できます。
http://kaworu.jpn.org/cpp/Boost
以下 Boost | Wikipedia から引用
http://ja.wikipedia.org/wiki/Boost
まずは Boost インストール
取り敢えず私は Mac ユーザなので, HomeBrew で入れようと思いました.
した後に, 『boost』で search してみました.
boost boost-build boost149 boost155
boost-bcp boost-python boost150
Caskroom/cask/iboostup Caskroom/cask/pivotalbooster
( ゚д゚)ポカーン
どれだよwwwwwwwwwwwwww
無印の boost だろうか…?
それともなんか一番数字が大きい boost155 だろうか…?
それとも boost-build とかいうやつかなあ
初心者にはどれがどれやら全く分からないヽ(;▽;)ノ
ちょっと怖いので, 無難に公式サイトからダウンロードボタン押して入れることにしました.
これで ダウンロードフォルダに zip が入ったはずなので, 取り敢えず解凍しておきます.
Boost ビルド
落としてきた zip を解凍したら, 次は build します.
やり方はこの記事を参考にしました.
Macにboostをインストールする(ソースからビルド) | ftvlog
% ./bootstrap.sh
で, ビルドが始まるのですが,
めちゃくちゃ時間かかります…CPUファンの音がブオオオオって止まらなくなるし, コンソールの出力がけたたましい
Boostのビルドは寝る前にするもの(適当)
— Hideyuki Tanaka (@tanakh) 2015, 5月 20
とのことで, このまま放置して寝ようと思います!
なるほも、よし寝ます(¦3[___]
https://t.co/55WlzwGFGP
— ちょまど@技術月刊誌で漫画連載 (@chomado) 2015, 5月 20
明日起きた頃には 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; }
コンパイル:
私はビルド時に path を『–prefix=/opt/local』と指定したので,
-I/opt/local/include
って指定するのが良いみたいです.
で, 実行:
Before sort
3
4
1
2
After sort
1
2
3
4
動いた!ヽ(ヽ *゚▽゚*)ノわーい!
brew update –all にsudoは要らないのでは
あっ!! ありがとうございます! 修正します
Booost.asioの記事、是非初心者目線で解説して下さい!
あわわ〜, 記事になるような内容が書けるか分かりませんが…
いじれたらぜひ文章に残したいと思います! ありがとうございます!
参考にさせていただき,無事インストールできました!
ありがとうございます!
–prefixを指定しなければ
> g++ test.cpp
でコンパイルできるみたいですね.どこに入ったのか知りませんが…
わあ! 良かったです! 嬉しいです! 報告ありがとうございます!
Thank you for your tutorial
[…] 【C++】Mac に Boost を インストールした – Chomado's Blog […]