らんだむな記憶

blogというものを体験してみようか!的なー

boost

さて、仕事では毛嫌いされていたboostさんでもUbuntuにぶっこみますかね。
忙しい時に、あれやなにやでboooOOOoooOOooooOOOst------!!!されると、怒りゲージもMAX boooooooooooooostしちゃうからまぁ仕方ないんだけど。

さて、面倒なのでどっかのサイトをggって...boost インストールから実行(boost::python)まで。 - のんびりしているエンジニアの日記って、brewって何だ?と思ったらOSXのパッケージマネージャのようだ...
仕方ない...。apt-getは何が入るかよく分からんし、素直にhttp://www.boost.org/users/download/で。

$ tar xvfj boost_1_58_0.tar.bz2

最近、仕事ではLinuxしてないから、そろそろtarコマンドも忘れそうだ(愚)
Let's Boost - インストール方法を参考に

$ ./bootstrap.sh 
Building Boost.Build engine with toolset ... 
Failed to build Boost.Build build engine
Consult 'bootstrap.log' for more details

...まぢか!?

$ cat bootstrap.log
...
./build.sh: 16: ./build.sh: cc: not found

おいっ。gccでやってくれよ!

BoostInstallationHowto - Andreas Klöckner's wiki

On Linux, make sure you have the Python headers (i.e. development information) installed. Your operating system may call this package something like python-dev or python-devel.

っとその前に、

$ sudo apt-get install python-dev
...
python-dev は既に最新バージョンです。

とりあえずOK
ていうか?あれ??そもそも、

$ which gcc
しーーーん

ゑ?なんでやろ...

$ sudo apt-get install gcc g++

いままで普通に使ってたのに...。Ubuntuのアップデートで消えたの??
gccとg++を再度入れたらbootstrap.shが通った。VirtualBoxのスナップショットを辿ってどこでおかしくなったかを調べる気にはイマイチなれんが、何度かアップデートしたうちのどれかのような気はする...。確かに、/usr/binの下にgccなかったし...。
きっとこの微妙な面倒臭さがAndroid使うかiPhoneいくかってなのと似てるんだろうな。急にMacBook が欲しくなってきた。安くならんかなぁ。Retinaのグレアは映り込みを抑えたとか書いてあるけど、やっぱしんどいよ。蛍光灯が映り込むとしんどい。でもノングレア非Retinaだと意味あるんかいってのがなぁ...。
パーティション分割と仮想化を併用した際のライセンスについて - Windows Enterpriseの「ケース④ 仮想環境に物理 OS を呼び出して利用する場合」にあるように、2013年1月からBoot Campで突っ込んだWindowsVMWare Fusionで呼び出すのに2ライセンス必要とか素敵な状態なので(´Д`; Mac1台でMac/Winもする気起こらんしなぁ(Boot Camp onlyで妥協ってのもアリか?)。そもそも論でパーティション分けると、ただでさえ少ないSSDがー…。すると、MacとWinで2台とか、絶対どっちか使わなくなる。Falloutがしたいから必然的にWindowsに走ってしまう。

と、さて、コンソールに次は「b2」だとか書いてあるから従おう。bjamのラッパかいな?

$ ./b2 install -j2 --prefix=/opt/boost_1_58_0

なんか始まった。
あー…、sudo忘れたから書き込めねぇ...。

$ sudo ./b2 install -j2 --prefix=/opt/boost_1_58_0

時間かかりそ。「終了まで結構時間かかりますので、その間にお茶でもどうぞ」とか「終了まで結構時間かかりますので、その間に水羊羹でもどうぞ」とか「終了まで結構時間かかりますので、その間に桜餅でもどうぞ」だな。残念ながら、水羊羹も桜餅もないが。

...failed updating 2 targets...
...skipped 6 targets...
...updated 12617 targets...

いけてるんかよく分からんな。一応何か入ったけど。

c++ - failed updating 58 targets when trying to build boost, what happened? - Stack Overflow
英語は分からん。

FreeBSDにBoostを入れるのにハマる - NO!と言えるようになりたい
ふむ。--without-librariesすればいいのか。こけてるやつはログ見ないと分からんなぁ...。出だしに「ふむ。」とか入れとかないと、ハイフンがはてな記法として解釈されちゃうからね!

動作検証してみるかー
Boost サンプル集にサンプルがある。

$ g++ -I/opt/boost_1_58_0/include main.cpp
$ ./a.out

UNIXに最初に触った時は拡張子がexeでないものが動くわけがないだろうが!と思ったもんだ。
ということで動いた。動いたら正義と仕事で教わったので、正義はなされた。

寝よう。

―――――・・・

(2015/11/15 追記)あとで読むと読みにくかったのでまとめ:

まとめ

(1)開発環境(C/C++)が使えることを確認。
(2)

$ ./bootstrap.sh 

(3)

$ sudo ./b2 install -j2 --prefix=/opt/boost_1_58_0