linux机器R2013a中的mcc -mv
Posted
技术标签:
【中文标题】linux机器R2013a中的mcc -mv【英文标题】:mcc -mv in linux machine R2013a 【发布时间】:2013-06-27 05:34:18 【问题描述】:当我尝试在 Linux 机器上创建我的 .m
文件的可执行文件时,一些 .m
文件工作得非常好。
但是,.m
-文件中包含相机输入的一个文件给了我这个错误:
Depfun 错误:'来自 MEX 文件的意外标准异常。 What() is: ..' Error using mcc Error execution mcc, return status = 1 (0x1).
但是当我在 Windows 和 R2012a 上使用相同的 .m
-file 时,它可以正常工作而没有任何错误。
我找到了a bug report here - 这是一个类似的问题吗?
我该如何解决?
这是我的.m
-file 的简单代码:
function yuv()
vid1 = videoinput('linuxvideo', 1, 'YUYV_1280x960');
set(vid1,'FramesPerTrigger',1);
start(vid1);
imageData1=getdata(vid1,1);
imageData=ycbcr2rgb(imageData1);
imagesc(imageData(:,:,:,1));
end
【问题讨论】:
也许这与错误有关...您是否尝试在deploytool
中明确指定 MEX 函数作为依赖项?请问失败的 MEX 功能是什么?
见:mathworks.com/help/compiler/…
我没有使用部署工具,我只使用了 mcc 命令....它只是一个测试 mex 文件,它接受相机输入并显示图像。我尝试了许多其他 mex 文件,只有具有相机输入的文件失败了。
阅读上面的链接,您可以使用mcc -a somefile ...
指定要直接添加的文件。我仍然不确定问题是什么。这个 MEX 文件是否与其他外部共享库链接?如果它是一个简单的功能,您可以发布 MEX 文件的源代码吗?
好的,我正在发布代码
【参考方案1】:
在 Linux 上的 R2013a 下,我遇到了相同的 Depfun 错误“What() is: ..”,但在使用不同的操作系统或较旧的 MATLAB 版本编译我的代码时没有错误。按照您链接的bug report 为我修复它。
在链接到bug report 的 zip 文件中,您会找到一个 depfun.opts 文件。重命名或移动位于 [matlabroot]/toolbox/compiler
中的原始 depfun.opts 文件,然后复制新文件。
放置新的 depfun.opts 文件是我能够在 Linux 上使用 R2013a 进行编译所需的全部内容。
另外请注意,错误报告说它可能是由importdata
函数或并行计算工具箱引起的,但我没有使用其中任何一个。
【讨论】:
是的,我还收到了来自 Matlab 服务器的电子邮件,说这是一个错误,我替换了我的 depfun.opts 文件,它工作正常。以上是关于linux机器R2013a中的mcc -mv的主要内容,如果未能解决你的问题,请参考以下文章