2015-04-06 437 views
0

我试图运行可变形零件模型MATLAB代码提供here,我在运行demo.m文件时不断收到此错误。它挂断,具体线路为:MATLAB帮助:“未知的Mex参数'-o'”

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

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

这是检测一个非常受欢迎的工具(引成千上万的后续篇倍),因此它肯定不是代码本身。我在CentOS 6.5上运行MATLAB R2014a。该文档确实说:

该软件已在多个版本的Linux和Mac OS X上使用MATLAB版本R2011a进行了测试。 MATLAB的早期版本也应该工作,虽然有可能是版本的兼容性问题之前,2009年”

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

回答

3

这可能是因为没有-o这样的标志,但是有一个CAPITAL O标志,因此-O。代表优化代码,以便您得到最好的运行代码给予你已经编码。但是,这已默认启用,但有一个-output标志。根据mex被调用的方式判断,他可能更符合你需要的内容。 -output允许您重写输出MEX文件的命名方式,而不是假定正在编译的MEX实现文件的名称....所以在您的情况下,这将是fconvssefconv_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']); 

更多帮助上mex编译标志,请参阅帮助页:http://www.mathworks.com/help/matlab/ref/mex.html

+1

其实适当的修正,以我的问题是,将“-o”更改为“输出”,如我的显然是重复的问题中所指出的那样。尽管如此,这里的一切都很有帮助谢谢! – marcman

+0

太棒了!没问题! – marcman