错误: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 函数的主要内容,如果未能解决你的问题,请参考以下文章
MySQLdb/_mysql.c(29):致命错误 C1083:无法打开包含文件:'mysql.h':没有这样的文件或目录
致命错误 C1083 - 无法打开包含文件:“windows.h”:没有这样的文件或目录