如何在Ubuntu64bit for matlab上构建FLANN

如何在Ubuntu64bit for matlab上构建FLANN,matlab,compilation,Matlab,Compilation,我在linux机器上从源代码构建FLANN时遇到了很多问题。我设法构建了matlab绑定,最后得到了几个.m文件。然而,matlab文件夹下的一个这样的文件是我需要的.m文件的.cpp文件版本。因此,我无法运行FLANN演示代码。这是否意味着编译过程中出现了错误 我没有从“make”收到任何错误消息。然而,我确实得到了一些库丢失错误,包括CUDA库和来自“cmake”的英特尔TBB。不确定这些是否重要 这就是我所做的一切: $ cd flann-x.y.z-src $ mkdir build $

我在linux机器上从源代码构建FLANN时遇到了很多问题。我设法构建了matlab绑定,最后得到了几个.m文件。然而,matlab文件夹下的一个这样的文件是我需要的.m文件的.cpp文件版本。因此,我无法运行FLANN演示代码。这是否意味着编译过程中出现了错误

我没有从“make”收到任何错误消息。然而,我确实得到了一些库丢失错误,包括CUDA库和来自“cmake”的英特尔TBB。不确定这些是否重要

这就是我所做的一切:

$ cd flann-x.y.z-src
$ mkdir build
$ cd build
$ cmake ..
$ make

CUDA和TBB是可选的,它们不在不重要

.m
文件实际上是普通的Matlab源代码,没有编译任何东西。除了一些
.m
文件外,在
build/matlab/
目录中还应该有一个
最近邻.mexa64
(或其他一些
mex
扩展,具体取决于您的平台)


这将与
.m
.cpp
文件不在同一目录中--这是源目录。您可能应该运行
makeinstall
来收集
/usr/local
中的内容,如果您执行
cmake-DCMAKE\u INSTALL\u PREFIX=/where
。然后,您将在
/usr/local/share/flann/matlab/

中拥有
.m
.mexa64
(但不是
.cpp
)文件。我刚刚尝试了一下,我只得到了一堆头,其他什么都没有。我确实将cmake gui配置为只构建matlabbindings@mugetsu如果从构建目录运行
make mex\u nearest\u neights\u neights
,会发生什么情况?我似乎根本没有那个文件,那不是一个文件;当您将
cd
导入
build
时,只需运行该命令。就像上面所做的
make
,但是告诉它只构建mex接口及其依赖项;它要么构建它,要么告诉你问题出在哪里。我得到的结论是,没有规则让目标“mex_近邻”成为目标。这很有用: