Edited at

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