天天看點

如何在Windows 下編譯FLANN 并在MATLAB下使用開篇

如何在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 路徑加進去

如何在Windows 下編譯FLANN 并在MATLAB下使用開篇

修改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

  1. 以管理者方式打開CMake
  2. 指定源代碼的輸入目标和解決方案檔案的輸出目的地。

    源代碼在哪裡: C:\ flann - 1.8.4 - src

    在哪裡編譯二進制檔案: C:\ flann - 1.8.4 - src \ build

    按下[Configure]并選擇目标Visual Studio 14 2015 Win64。選擇win64平台

    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇
  3. 執行各種設定。

    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)

  4. 按[Add Entry]并添加以下設定。

    name: CMAKE_DEBUG_POSTFIX

    type: STRING

    value: -gd

    1.9版本 需要添加,管他啥都加上

    name: CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS

    type: BOOL

    value: ☑ 選中

    按[Generate]輸出解決方案檔案。

  5. 以管理者方式打開vs code 2015

    打開build下的flann.lsh

    然後 選擇 release x64

    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇
    對ALL_BUILD右鍵生成
    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇

    對mex_nearest_neighbors右鍵生成

    對INSTALL右鍵生成

    看需要吧,也可以全部生成

  6. 環境變量

    為了友善其他程式使用可以把FLANN的路徑加入環境變量,這裡加入到是install生成的檔案的路徑

    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇
    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇
  7. 在MATLAB中使用

    把install 生成的路徑, 加入到matlab的路徑中就好了

    如何在Windows 下編譯FLANN 并在MATLAB下使用開篇

繼續閱讀