![](/img/trans.png)
[英]running opencv code with matlab via mex fails while on VisualStudio it works
[英]Running exe code from Matlab. The exact same instruction that works in cmd (dos) fails from Matlab
我必须承认,这让我发疯。 在最终能够成功编译我需要处理的语音文件的两个功能之后,我需要从可信赖的在线存储库下载的C / C ++代码(已在Linux中进行了彻底测试的代码)中,现在我正努力从Matlab启动这些文件...
当我在cmd(dos)Analysis b2.wav config_default中键入以下命令时,它可以工作,没问题(请参见此处Works )。
然后,我将完全相同的命令构建到字符串中,并将其提供给“系统” Matlab函数。 然后代码崩溃...(请参阅此处失败 )我尝试使用完整路径(c:\\ b2.wav等),但仍然无法正常工作...
关于为什么会发生这种情况的任何想法?
您的图像显示程序Analysis意外停止。
原因可能有很多,所以让我们逐步进行:
1)尝试从终端执行Analysis并传递错误的参数(不存在的文件,只有一个参数(缺少config_defalut),根本没有参数,三个参数,等等。)
您可以通过传递错误的参数使程序从终端崩溃吗?
2)首先尝试创建命令,检查命令是否正确(\\ b实际上是\\ b而不是字符串修饰符)
command_to_be_run = 'C:\Analysis C:\b2.wav C:\config_default'
disp(command_to_be_run) % is it showing exacly what you want?
system(command_to_be_run); % if so, run it.
3)尝试在C中创建一个虚拟可执行文件dummy.exe,该文件接受两个参数并打印接收到的参数(使其保持超级简单,仅打印)。 从终端调用它。 它行得通吗? 从Matlba调用它。 能行吗
通过这3个测试,您可以大大缩小错误的出处。
顺便说一句,“ config_default”是一个文件还是一个告诉分析如何运行的字符串? 在某些示例中,您将其视为文件,在其他示例中,则将其视为不带路径的参数。
根据到目前为止的尝试和输出,这是我的理论:
编辑:可能的黑客解决方案-创建一个批处理文件,其中:(1)您将CD到Analysis.exe和目标wav所在的目录; (2)对批处理文件进行Matlab系统调用。
编辑2:可能的实验来验证断言2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.