普段はMacを使っているのですが、今度のイベントはWindowsでやらなきゃならなかったので、WindowsにopenFrameworksの環境を構築しました。そのとき、ハマったことについて、同じように困った人のために。

まー、大抵のWindowsでopenFrameworksを導入しているサイト見たら、

  • VC++2012インストールしてねー
  • oFダウンロードしてねー
  • emptyExampleコンパイルしてねー
  • やったね!動いた!

ってなってるんですが、正直、こんなにトントンと進んだこと今までありません。

今日は、

error MSB4018: The “CL” task failed unexpectedly.

というエラーにぶつかって、もはや、エラーの意味も分からず、検索してもなかなかヒットせずに、袋小路にハマってしまいました。

んで、いろいろ調べたり試行錯誤してるうちに、環境変数がキーワードらしい。ということがわかりました。

[Windowsキー+R]->[“regedit”と入力]としてレジストリエディタを起動します。
その中のHKEY_CURRENT_USEREnvironmentの中にTEMPTMPという環境変数がありますが、種類のところがREG_SZになっていたら問題っぽいです。正しくはREG_EXPAND_SZです。どうやら%HOGE%みたいな変数を中に入れた時にREG_SZでは展開できないっぽいけどよくわからん。自分の環境ではTEMPがRドライブとかいうところになってました。TEMPはおそらく、WindowsのCドライブ直下のSystemフォルダにTempというフォルダが有ると思うので、そこのパスを記入します。

そしたらたぶんREG_EXPAND_SZに種類が変わっていると思います。これでopenFrameworksのemptyExampleを動かしたら上手く、コンパイルできました。

さて、emptyExampleを動かしたところで、Macで開発していたソースコードを移行して、コンパイル。そしたらシンタックスエラーがいっぱいでた。でも、前に同じことがあったので、これは割とすんなり解決出来ました。エラーが出ているソースコードを選択して、[file]->[advanced save options]で、文字コードをUnicode with SignatureにすればOKです。自分の環境ではこれで動くようになりました。