現象
openFrameworksはv0.9.0がリリースになり、WindowsではopenFrameworks v0.9.0とVisual Studio 2015で作業することが多くなっているかと思いますが、v0.8.4のアプリケーションをビルドしなければならないケースもあります。
Windows 8.1にVisual Studio for Windows Desktop 2012をインストールした環境に、Visual Studio Community 2015をインストールすると、openFrameworks v0.8.4のビルドでエラーが起こるようになりました。
msimg32.libが見つからない、と言っています。VS2012でも同じように言われます。
調べた結果、MSImg32.Libは
c:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86\MSImg32.Lib
に存在しているのですが、アプリケーションプロジェクト(emptyExampleなど)のライブラリディレクトリが参照しているパスに入っていません。
システムの環境変数?
$(WindowsSDK_LibraryPath_x86)
を展開したパスが
c:\Program Files (x86)\Windows Kits\8.0\Lib\winv6.3\um\x86
になっています。私の環境では、winv6.3ディレクトリは存在してません。
解決策
プロジェクトのライブラリディレクトリにwin8を書き足すのは面倒ですし、$(WindowsSDK_LibraryPath_x86)を副作用なく書き換える方法がわからないので
win8ディレクトリをwinv6.3ディレクトリとしてコピーすればいいのでは、と考えました。
これで動くようになりました。
ショートカット作成では解決しませんでした。
なお、Visual Studio 2015でopenFrameworks v0.8.4をビルドするにはアプリケーションプロジェクト(emptyExampleなど)とopenFrameworksLibプロジェクトの両方のプロパティで、プラットフォームツールセットを
- Visual Studio 2012 (v110)
に設定すればビルドすることはできます。
ところで何故かVS2013までは、プロジェクトのデフォルトで「複数プロセッサによるコンパイルを有効にする」がオフになっててビルドに果てしない時間がかかってましたが、VS2015ではオンになっててすこし設定が楽になりましたね。
参考:
selflashさん VisualStudio2013でopenFrameworksをビルドする