如何在Windows 下编译FLANN 并在MATLAB下使用
开篇
因为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平台
-
执行各种设置。
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右键生成
对mex_nearest_neighbors右键生成
对INSTALL右键生成
看需要吧,也可以全部生成 -
环境变量
为了方便其他程序使用可以把FLANN的路径加入环境变量,这里加入到是install生成的文件的路径
-
在MATLAB中使用
把install 生成的路径, 加入到matlab的路径中就好了