皆さんこんにちわ。
お元気ですか?私は疲れました。
本日はboostについて
boostとは「C++の先駆的な開発者のコミュニティ、及びそのコミュニティによって公開されているオープンソースライブラリのことを指すそうです」。(Wikipedia)
boostの中にはファイル操作や線形代数ライブラリublas、pythonとの連携に関するライブラリまであります。
pythonをメインで使う人にはboostは重要かもしれません。
なぜなら、極端にpythonで書くと遅い部分をC++で書き直し、連携することによって速度向上を目指せるからです。
Python遅い時は遅いですから…。さて、インストールからいってみましょう。
インストール
brew install boost
さて、実行してみましょう。
ソースコードはお借りさせていただきました。(http://d.hatena.ne.jp/moriyoshi/20091214/1260779899)
実行するソースコード
//basic.cpp #include <boost/python.hpp> int add(int lhs, int rhs) { return lhs + rhs; } BOOST_PYTHON_MODULE(basic) { using namespace boost::python; def("add", &add); }
因みに
BOOST_PYTHON_MODULEの()内とファイル名が共通でないとPythonでのimport実行時にこんなエラーがでます。
ImportError: dynamic module does not define init function (initbasic)
コンパイル
コンパイルすると .soファイルができあがります。
g++ -I`python -c 'from distutils.sysconfig import *; print get_python_inc()'` -DPIC -bundle -fPIC -o basic.so basic.cpp -lboost_python -framework Python
実行
python >>> import basic >>> basic.add(2,3) 5
さあ、あなたのコードにもboostを!