如何在Windows 下編譯FLANN 并在MATLAB下使用
- 開篇
-
- 環境
- 下載下傳FLANN
- 将Matlab路徑加入到系統環境變量中
- 修改serialization.h檔案
- 修改CMakeLists檔案
- CMake
開篇
因為MATLAB代碼需要在FLANN下運作,無奈找到的FLANN編譯都是坑,寫的不全面,坑了我一天
特地在這裡把自己的經驗寫出來,友善大家
環境
Windows10
Visual Studio 2015
Matlab 2017b
CMake 3
下載下傳FLANN
下載下傳位址http://www.cs.ubc.ca/research/flann/#download
下載下傳FLANN 1.8.4(flann-1.8.4-src.zip)并解壓縮檔案。
将Matlab路徑加入到系統環境變量中
就是在path中把matlab 安裝目錄下的bin 路徑加進去

修改serialization.h檔案
在\src\cpp\flann\util\serialization.h的第92行添加以下代碼:
#ifdef _MSC_VER
BASIC_TYPE_SERIALIZER( unsigned __int64 );
#endif
修改CMakeLists檔案
在CMakeLists.txt 添加
set(MEX_BUILD_FLAGS "")
CMake
- 以管理者方式打開CMake
-
指定源代碼的輸入目标和解決方案檔案的輸出目的地。
源代碼在哪裡: C:\ flann - 1.8.4 - src
在哪裡編譯二進制檔案: C:\ flann - 1.8.4 - src \ build
按下[Configure]并選擇目标Visual Studio 14 2015 Win64。選擇win64平台
如何在Windows 下編譯FLANN 并在MATLAB下使用開篇 -
執行各種設定。
BUILD_C_BINDINGS☑ (選中)
BUILD_MATLAB_BINDINGS☐ (選中)
BUILD_PYTHON_BINDINGS☐ (取消選中)
CMAKE_CONFIGURATION_TYPES release;debug
CMAKE_INSTALL_PREFIX C:\ Program Files \ flann(或C:\ Program Files(x86)\ flann)
-
按[Add Entry]并添加以下設定。
name: CMAKE_DEBUG_POSTFIX
type: STRING
value: -gd
1.9版本 需要添加,管他啥都加上
name: CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
type: BOOL
value: ☑ 選中
按[Generate]輸出解決方案檔案。
-
以管理者方式打開vs code 2015
打開build下的flann.lsh
然後 選擇 release x64
對ALL_BUILD右鍵生成如何在Windows 下編譯FLANN 并在MATLAB下使用開篇 如何在Windows 下編譯FLANN 并在MATLAB下使用開篇 對mex_nearest_neighbors右鍵生成
對INSTALL右鍵生成
看需要吧,也可以全部生成
-
環境變量
為了友善其他程式使用可以把FLANN的路徑加入環境變量,這裡加入到是install生成的檔案的路徑
如何在Windows 下編譯FLANN 并在MATLAB下使用開篇 如何在Windows 下編譯FLANN 并在MATLAB下使用開篇 -
在MATLAB中使用
把install 生成的路徑, 加入到matlab的路徑中就好了
如何在Windows 下編譯FLANN 并在MATLAB下使用開篇