MATLAB帮助:"未知的Mex参数' -of#39;和#34;

时间:2015-04-06 21:34:11

标签: matlab mex object-detection

我试图运行提供here的可变形零件模型MATLAB代码,并且在运行demo.m文件时我一直收到此错误。它挂起的具体线路是:

eval([mexcmd ' gdetect/fconvsse.cc -o fconv']);

eval([mexcmd ' gdetect/fconv_var_dim_MT.cc -o fconv_var_dim']);

这是一种非常受欢迎的检测工具(在随后的论文中引用了数千次),所以它肯定不是代码本身。我在CentOS 6.5上的MATLAB R2014a上运行它。文档确实说:

  

该软件使用MATLAB版本R2011a在多个版本的Linux和Mac OS X上进行了测试。早期版本的MATLAB也应该有效,尽管2009年之前版本可能存在兼容性问题。"

一般来说,R2014a可以运行旧版本的东西。有谁知道我能做些什么来解决这个问题?或者至少是' -o'命令甚至指的是?我检查了正在编译的源代码,但无法找到解析器或任何东西。

1 个答案:

答案 0 :(得分:3)

这可能是因为没有-o标志这样的东西。但是,有一个CAPITAL O标志,-O。这代表优化代码,以便在给定编码的情况下获得最佳运行代码。但是,默认情况下已启用此功能,但有一个-output标志。从mex被调用的方式来看,这可能更符合您的需求。 -output允许您覆盖输出MEX文件的命名方式,而不是假设正在编译的MEX实现文件的名称....所以在您的情况下,这将是fconvsse或{ {1}}。

作为另一个建议,我还建议你启用详细模式,以便在编译代码时可以看到发生在幕后的所有内容。这是由fconv_var_dim_MT标志启用的。

因此,请执行此操作:

-v

eval([mexcmd ' -v gdetect/fconvsse.cc -output fconv']);

有关eval([mexcmd ' -v gdetect/fconv_var_dim_MT.cc -output fconv_var_dim']); 编译标志的更多帮助,请参阅帮助页面:http://www.mathworks.com/help/matlab/ref/mex.html