openFrameworks v0.8(Visual Studio2012版x64)の64ビット化できるかな?
(2014.05.02補足。現在はこちらのsadmbさんのaddonが使いやすくて良いですよ。
ドラッグアンドドロップとQuickTimeによる動画操作ができませんが、とりあえず動くようになりました。
1.Pocoのx64ライブラリの入手
http://pocoproject.org/download/index.html
からソースコードをダウンロードします。afxwin.hが無いとうエラーで怒られるので、VisualStudio2012のMFCをインストールしておく。
PocoFoundationd.lib, CppUnitd.libが無いと怒られるので、先にCppUnitとFoundationをビルドしておきます。\poco-1.4.6p2-all\CppUnitのCppUnit_x64_vs110.slnを開いて全てビルド。\poco-1.4.6p2-all\FoundationのFoundation_x64_vs110.slnを開いてバッチビルドで全てにチェックを入れてビルド。
他、DataやXML、Util、Netなどのフォルダに入りそれぞれをビルドしていきます。他のライブラリに依存するので、エラーが出たらビルドの順番を変えてみてください。
http://slproweb.com/products/Win32OpenSSL.html
Win64 OpenSSL v1.0.1eをダウンロード。
NetSSL_OpenSSL_x64_vs110のプロジェクトのプロパティで、すべての構成を選択して、openSSLのincludeフォルダパスをインクルードディレクトリに追加。
2.FreeImageのx64ライブラリの入手
nVidiaのCudaをインストールして、FreeImage64.libをコピー。
3.glewのx64
4.freetype
ft252.zip
5.glfw
http://www.glfw.org/download.html
64bit版プリコンパイルライブラリ
ofAppGLFWWindow.cpp内のglfwSetDropCallback関数の実装がどうしても見つからなかったので、ドラッグアンドドロップを諦めてコメントアウトします。
//--------------------------------------------
void ofAppGLFWWindow::initializeWindow(){
//----------------------
// setup the callbacks
glfwSetMouseButtonCallback(windowP, mouse_cb);
glfwSetCursorPosCallback(windowP, motion_cb);
glfwSetKeyCallback(windowP, keyboard_cb);
glfwSetWindowSizeCallback(windowP, resize_cb);
glfwSetWindowCloseCallback(windowP, exit_cb);
glfwSetScrollCallback(windowP, scroll_cb);
//glfwSetDropCallback(windowP, drop_cb); // for x64
}
6.QuickTime
quicktimeの64bitライブラリもどうしても見つからなかったので、QuickTimeのincludeとcloseの2か所をコメントアウトします。ofAppRunner.cpp内の
// TODO: closing seems wonky.
// adding this for vc2010 compile: error C3861: 'closeQuicktime': identifier not found
#if 0 // defined (TARGET_WIN32) || defined(TARGET_OSX)
#include "ofQtUtils.h"
#endif
と
void ofExitCallback(){
~省略~
// try to close quicktime, for non-linux systems:
#if 0 // defined(OF_VIDEO_CAPTURE_QUICKTIME) || defined(OF_VIDEO_PLAYER_QUICKTIME)
closeQuicktime();
#endif
~省略~
}
です。
これでコンパイルはとりあえず通ります。
7.各ライブラリのDLL
パスの混乱を避けるためにexeファイルと同じ場所に、64bit版のDLLファイルを集めてくることにします。
libfontconfig-1.dllのx64ビルド版など、入手しにくいものはちょっと昔に Harry Vermeulenさんが用意したものを借りてきます。
http://www.mediafire.com/download/kv4zeie1j1xxmkk/hV_of_preRelease_v007_vs2010_x64_stripped.zip
を解凍して、libsの中のフォルダ階層を下ってdllをコピーしてきてください。新しいものを入手できるdllはlibと正しくバージョンのあったものを用意してください。
全てのファイルがそろった状態でexeを実行すれば、64ビットアプリとしてopenframeworksのプログラムが動きますが、32bit版DLLが読み込まれていると0xc00007bなどのエラーで怒られることがあります。その場合、
http://www.dependencywalker.com/
から64ビット版のものをダウンロードして、exeをドラッグアンドドロップして、読み込まれているdllがx64版になっているかどうかを確認してください。
以上で、制限はあるもののとりあえずopenframeworksをwindows上でx64ビルドしたものを動かせるようになります。なお、何か不具合が起こっても一切責任をとれませんので、自分の責任の範囲内で行ってください。