我正在尝试使用来自C ++的Matlab用户定义函数。我使用下面的命令创建了库。
mcc -B csharedlib:libMyLib myFunction.m
它不会创建mclmcr.h和libmwmclmcrrt.so。我想知道它是运行时库的一部分吗?
由于
答案 0 :(得分:0)
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
目录包含那些生成的文件。
其他一些参考文献: