- FLANN 1.8.4(flann-1.8.4-src.zip)をダウンロードしてファイルを解凍する。(C:\flann-1.8.4-src)
http://www.cs.ubc.ca/research/flann/#download
https://github.com/mariusmuja/flann
-
ソースコードの入力先とソリューションファイルの出力先を指定する。
- Where is the source code: C:\flann-1.8.4-src
- Where is build the binaries: C:\flann-1.8.4-src\build
-
[Configure]を押してターゲットとなるVisual Studioを選択する。
-
各種設定を行う。
- BUILD_C_BINDINGS ☑ (check)
- BUILD_MATLAB_BINDINGS ☐ (uncheck)
- BUILD_PYTHON_BINDINGS ☐ (uncheck)
- CMAKE_CONFIGURATION_TYPES Debug;Release
- CMAKE_INSTALL_PREFIX C:\Program Files\flann (or C:\Program Files (x86)\flann)
-
[Add Entry]を押して以下の設定を追加する。
* Debugビルドの生成ファイルのファイル名(最後尾)に付加する文字列。Name: CMAKE_DEBUG_POSTFIX Type: STRING Value: -gd Description: -
[Generate]を押してソリューションファイルを出力する。
-
Visual Studioを管理者権限で起動してFLANNのソリューションファイル(C:\flann-1.8.4-src\build\flann.sln)を開く。
(Visual Studioを管理者権限で起動しないとINSTALLが失敗する。) -
serialization.hの92行目に以下のソースコードを追記する。
(flann-1.8.4-src\src\cpp\flann\util\serialization.h)#ifdef _MSC_VER BASIC_TYPE_SERIALIZER( unsigned __int64 ); #endif
-
FLANNをビルドする。(ALL_BUILD)
- ソリューションの構成(Debug, Release)を設定する。
- ソリューションエクスプローラーからALL_BUILDプロジェクトを選択する。
- [ビルド]>[ソリューションのビルド]を押してFLANNをビルドする。
-
FLANNをインストールする。(INSTALL)
- ソリューションエクスプローラーからINSTALLプロジェクトを選択する。
- [ビルド]>[プロジェクトのみ]>[INSTALLのみをビルド]を押してFLANNをインストールする。
CMAKE_INSTALL_PREFIXで指定した出力先へ必要なファイルがコピーされる。
-
環境変数FLANN_ROOTを作成してFLANNのパス(C:\Program Files\flann)を設定する。
-
環境変数Pathに;%FLANN_ROOT%\binを追加する。
If you get an error about .serialize when compiling flann, I found a good stack overflow post that fixed it for me.
You just have to add the following around line 96 of serialize.h file.
#ifdef _MSC_VER
BASIC_TYPE_SERIALIZER(unsigned __int64);
#endif
Here's the post:
https://stackoverflow.com/questions/27424343/building-pcl-pcl-kdtree-left-of-serialize-must-have-class-struct-union/27425818#27425818?newreg=8aa2af6012084426a997a20ec1935006