我正在尝试从此链接运行Matlab代码:(请参阅底部的下载部分) http://cvn.ecp.fr/personnel/iasonas/sketch.html
下载源代码后,我按照readme.pdf中的步骤进行操作
我正在运行Matlab R2014a的demo1
1。)将根文件夹及其所有子文件夹放在Matlab路径中。
之外,
我进入过滤子文件夹,然后执行命令
mex iir_gauss.cpp
显示 MEX成功完成后。我尝试在kdtree / src子文件夹中编译kdtree.cc。
但失败了:
错误信息是: C:\用户\用户\桌面\ ps_primal_sketch \ ps_primal_sketch \ kdtree \ SRC \ kdtree_common.h(20):致命错误C1083:无法打开 包含文件:'/ Applications / MATLAB6p5p1 / extern / include / mex.h':没有这样的文件或目录
如果没有编译文件,我就无法运行demo1,因为无法调用其中一个函数(kdtree)。
有人可以教我如何执行文件(demo1)吗?我看到kdtree \ mex \ win子文件夹中有一个kdtree.dll,我是否需要再次编译kdtree.cc文件?请详细教我,因为我是Matlab的初学者,谢谢。
答案 0 :(得分:1)
我想我解开了这个难题......
将文件kdtree_common.h
中的第20行替换为#include "mex.h"
问题依赖于您下载的源代码。
查看kdtree_common.h
的开头
它看起来如下:
// Guy Shechter
// June 2004
//
// Uncomment one of these includes depending on your architecture.
// Your installation location may vary.
//
//
// For Linux use this line:
//
//#include "/usr/local/matlab/extern/include/mex.h"
//
//
// For Windows systems use this line:
//
//#include "c:\matlab6p1\extern\include\mex.h"
//
//
// For Mac Os X systems use this line :
//
#include "/Applications/MATLAB6p5p1/extern/include/mex.h"
//
//
如您所见,包含路径指的是"/Applications/MATLAB6p5p1/extern/include/mex.h"
评论说" For Mac Os X systems use this line :
"
由于您使用的是Windows操作系统,因此您应将其置于评论中,并从评论中删除#include "c:\matlab6p1\extern\include\mex.h"
。
它无法正常工作,因为它指的是旧版本的Matlab。
您不需要使用完整路径,只需将其替换为:
#include "mex.h"