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

时间:2012-07-20 16:00:18

标签: c++ matlab matlab-deployment matlab-compiler

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

mcc -B csharedlib:libMyLib myFunction.m

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

由于

1 个答案:

答案 0 :(得分:0)

根据documentation

  

MATLAB Compiler生成的所有应用程序和软件组件   并且相关的构建器产品只需要链接一个   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目录包含那些生成的文件。

其他一些参考文献: