我正在尝试从 Matlab 编译 C 共享库。我的 Matlab 代码使用了很多图像处理功能。所以,编译很顺利,但是当我从我的应用程序调用 dll 时,我收到如下消息:
“双精度类型输入参数的未定义函数或方法‘XYZ’”。
我已经验证我的论点没问题——这不是类型问题。所以,我尝试添加%#function XYZ
到我的 .m 文件中,但这没有任何帮助。然后,我尝试-a
在编译命令中使用该标志:
eval(['mcc -v -N -W lib:cshared -d ' clibdir ' -T link:lib -a edge' allFiles]);
但它无法编译:
Depfun 错误:“无法将边缘定位为 MATLAB 路径上的函数”
我已经验证了图像处理文件在我的计算机上(我可以毫无问题地从 matlab 运行所有内容)并且我的路径指向包含它们的目录。
我还尝试将工具箱 .m 文件复制到我的工作目录中,但这很快就会膨胀成很多文件。而且,对于某些功能,没有 .m - 只有一个 .mex - 我还没有找到将 mex 文件包含到我的 .dll 中的方法。
我错过了什么?