kkAyatakaのメモ帳。

誰かの役に立つかもしれない備忘録。

Boost

BoostをRaspberry Pi向けにクロスビルドする

BoostをRaspberry Pi向けにクロスビルドします。 Boost 1.54.0 Raspbian (Hard Float) クロスコンパイラの準備 クロスコンパイルの環境を整えます。参考 RPi Kernel Compilation ARM用なら引数次第で何とでもなるやろ~と軽い気持ちでapt-getでGCCを入れたと…

Boost.Testの利用で変な風にはまる

Boost.Testを使い始めようと試していたら、次のエラーが出て、詰まっていました。 LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。ソースは次のとおりの簡単なもの。 #define BOOST_TEST_MODULE unit_test #include <boost/test/unit_test.hpp> BOOST_AU</boost/test/unit_test.hpp>…

Boost.Logはとりあえずこう使ってみる。

これまでの記事でいろいろ書いてきましたが、全部まとめて、とりあえずこんな設定で使ってみようと思っています。問題が出たらつどつど。 コンソールに出力する Visual Studioに出力する ファイルに出力する ログファイルはローテーションの設定をする 日付…

Boost 1.54.0のLogをMac 10.7 (Xcode 4)でつかう。

10.8、10.9でもXcode 4系なら多分同じ。注意点は2つ clangでビルドする dylibを使う clangでビルド 環境は次の通り 10.7.5 Xcode 4.6.3 clang (Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) GCC(引数指定無し)でビルドすると、途中で失…

Boost.Logでファイルに出力する

Log出力するならやっぱりファイルに出力したいので、ファイル出力の設定をします。Log用のライブラリを使うなら、ログローテーションを活用しない手は無いですね。出力用のbackendはtext_file_backendになるので、既定どおりbackend -> sink -> loggerに設定…

Boost.Logのtext_ostream_backend

BOOST_LOG_TRIVIALは何の設定も無くログをコンソールに出力できますが、新しいbackend(のためのsink)を設定すると出力されなくなります。これでは少し都合が悪いので、自前でコンソール用のbackend(sink)を用意します。ストリームへの出力なので、次を使いま…

Boost.Logの出力をVisual Studioの出力に表示する

Win APIのOutputDebugStringを使用することで、Visual Studioの出力ウィンドウにログを表示することができます。Boost.Logでは同様の機能を持った、専用のbackendが標準で用意されているので、それを利用することで、Boost.Logの出力をVS上に表示することが…

Boost.Logを使う。

Boost 1.54.0からLogが入ったので使ってみました。ログの取り回しは、とりあえずグローバルに1つあればよいので、Boost.Logのチュートリアルにあるように、TRIVIALを使っていきます。 BOOST_LOG_TRIVIAL チュートリアルほぼまんまですが。レベルでフィルタわ…

BoostのMac用dylibのビルドで、install_nameを変更する

b2の引数等いろいろ調べたり試したりしたけど、ダメで、結局*.jamファイルを変更した。 Mac OS X 10.7.5 boost 1.54.0 Xcode 4.6.3 (Apple LLVM 4.2) Boost.Logを使おうと思ったところ、どうにもMacはstaticライブラリが使えないようで...Macでsharedライブ…

Boost.DateTimeのフォーマット

gregorian::dateやposix_time::ptimeはISO形式での出力になる。日付を「/」区切りや、ファイルパス/名前などに利用したりと、都合よく整形したい場合はそれぞれのfacetを利用する。 date_facet, time_facet 変換は、gregorian::date_facet、posix_time::tim…

Boost.DateTimeでUTCとLocalの変換

posix_time::ptimeのutc local変換。 utc to local 変換方法2種。1つ目はC言語関数ラッパーを使うもの。これはutc -> localのみの変換。通常はこれだけで事足りそう。 #include <boost/date_time/c_local_time_adjustor.hpp> date_time::c_local_adjustor<posix_time::ptime> adj1; posix_time::ptime t1 = adj1.utc_to_loca</posix_time::ptime></boost/date_time/c_local_time_adjustor.hpp>…