错误:mclmcr.h:没有这样的文件或目录从 C 调用 matlab 函数

Posted

技术标签:

【中文标题】错误:mclmcr.h:没有这样的文件或目录从 C 调用 matlab 函数【英文标题】:error: mclmcr.h: No such file or directory calling matlab function from C 【发布时间】:2012-07-20 16:00:17 【问题描述】:

我正在尝试使用来自 C++ 的 Matlab 用户定义函数。我已经使用以下命令创建了库。

mcc -B csharedlib:libMyLib myFunction.m

它不会创建 mclmcr.h 和 libmwmclmcrrt.so。我想知道它是运行时库的一部分吗?

谢谢

【问题讨论】:

【参考方案1】:

根据documentation:

MATLAB 编译器生成的所有应用程序和软件组件 并且相关的构建器产品只需要链接一个 MathWorks 库,mclmcrrtxx.lib

.lib 和相应的头文件可以在$matlabroot/extern 中找到,而 .dll/.so 共享库可以在$matlabroot/runtime/$arch 中找到(或在 MCR 安装中)

MATLAB 有一个方便的函数mbuild(您必须使用mbuild -setup 设置一次)。 mbuild 知道如何使用正确的开关调用 C/C++ 编译器,以便编译器可以找到所需的包含文件和库。您可以使用 mbuild 创建自己的可执行文件并将它们与 MATLAB Compiler 生成的共享库链接。

例如,它会在 MATLAB 中被调用为:

>> mbuild testProgram.c -I./distrib -L./distrib -llibMylib

构建一个链接到您使用 MATLAB 编译器生成的 C 共享库的程序,其中distrib 目录包含这些生成的文件。

其他一些参考资料:

Set MCR Paths for Development and Testing Set MCR Paths for Run-Time Deployment

【讨论】:

以上是关于错误:mclmcr.h:没有这样的文件或目录从 C 调用 matlab 函数的主要内容,如果未能解决你的问题,请参考以下文章

“错误生成子进程:没有这样的文件或目录”Xcode

MySQLdb/_mysql.c(29):致命错误 C1083:无法打开包含文件:'mysql.h':没有这样的文件或目录

致命错误 C1083 - 无法打开包含文件:“windows.h”:没有这样的文件或目录

致命错误:Python.h:没有这样的文件或目录

cytoolz/dicttoolz.c:19:10:致命错误:Python.h:没有这样的文件或目录

FileInputStream 错误没有这样的文件或目录