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的主要内容,如果未能解决你的问题,请参考以下文章

matlab中用svm如何做多类别分类(R2013a)?

Matlab 编译器 (mcc) 不包括引用函数

《企鹅教育E=MCC中的M应该是什么或怎么回事?》 回复

如何在不使用位置信息的情况下将 MCC + MNC 映射到 iOS Objective-C 中的用户电话国家代码?

2016-2017学年第三次测试赛 习题H MCC的考验

在 AdWords 数据传输到 BigQuery 后查看 MCC 帐户的汇总数据