Windows
openFrameworks
boost
VisualStudio2013

Windows+openFrameworksでboostを使うときの罠

More than 3 years have passed since last update.

openFrameworksでboostを使うときは、POCO_NO_WINDOWSというマクロを定義しなければ、CreateEventがglobal namescopeではないといったエラーによりコンパイルが通らない。

boostをNuGetで入れてもこのフラグはつかないので、自分で定義してあげる必要がある。

プロジェクトのプロパティから、プリプロセッサの定義をすれば良い。

また、openFrameworksではshared_ptrをnamespaceをつけずに使用している部分が存在する。
そのため、boostのshared_ptrとstdのshared_ptrが重複してビルドできないことがある。
これは、namespaceを追記してopenFrameworks自体に修正を入れなければならない。

再現したの環境↓

  • openFrameworks(0.8.4)
  • Visual Studio 2013 Update5
  • Windows8