VS2013 で FLANN 1.8.4 をビルド
VS2013 での FLANN 1.8.4 のビルドのメモ。
あるヘッダファイルを修正しないとうまくビルドできなかった。
環境
- Windows 7 Professional x64
- Microsoft Visual Studio Premium 2013
エラー内容
error C2228: '.serialize' : 左側がクラス、構造体、共用体ではありません。
修正箇所
- 上記のサイトを参考に、serialization.h内の92行目あたりに3行追加
// declare serializers for simple types BASIC_TYPE_SERIALIZER(char); BASIC_TYPE_SERIALIZER(unsigned char); BASIC_TYPE_SERIALIZER(short); BASIC_TYPE_SERIALIZER(unsigned short); BASIC_TYPE_SERIALIZER(int); BASIC_TYPE_SERIALIZER(unsigned int); BASIC_TYPE_SERIALIZER(long); BASIC_TYPE_SERIALIZER(unsigned long); BASIC_TYPE_SERIALIZER(float); BASIC_TYPE_SERIALIZER(double); BASIC_TYPE_SERIALIZER(bool); #ifdef _MSC_VER // 追加 BASIC_TYPE_SERIALIZER(unsigned __int64); // 追加 #endif // 追加
最終的なビルド手順
- FLANNのソースコードをダウンロード・解凍。今回はC:\FLANN下に解凍した。
- src/cpp/flann/util/serialization.hを上述の通り修正
- cmake して Visual Studio で開けるソリューションファイルを作成
- スタートメニューからCMake (cmake-gui) を起動
- 必要事項を入力して "Configure" を押す
- "Where is the source code:" に "C:\FLANN"
- "Where to build the binaries:" に "C:\FLANN\build" (どこでもいい)
- 何か設定が必要であればする
- 今回は特に何もしない
- "Generate" を押す
- C:\FLANN\build に作成された flann.sln を管理者権限で開く
- 下記のINSTALLで、ビルドしたファイルをProgram Files下にコピーするのに管理者権限が必要
- INSTALLしなくていいなら flann.sln は普通に開いてよい
- 先に Visual Studio 2013 を管理者権限で開いてから flann.sln を開くとよい
- 下記のINSTALLで、ビルドしたファイルをProgram Files下にコピーするのに管理者権限が必要
- メニュー「ビルド」→「バッチビルド」をクリック
- 次の4つにチェックを入れて「ビルド」を押す
- ALL_BUILD (Debug)
- ALL_BUILD (Release)
- INSTALL (Debug)
- INSTALL (Release)