主要内容

故障排除MATLAB接口c++库的问题

库接口不存在或不是

MATLAB®搜索库在MATLAB接口文件路径。库的接口文件库名libnameInterface。ext,在那里ext的特定于平台的文件扩展名是共享库文件

缺失或不正确安装的运行时库

库接口是一个动态链接模块,MATLAB解释器加载并执行在图书馆当你调用一个函数。动态链接意味着当你调用这个函数,程序查找依赖库。图书馆可以使用专门的运行时库不建在MATLAB接口。这些库的代码不包括接口;图书馆必须出现在你的电脑当你叫图书馆。图书馆出版商应该提供关于安装依赖库的信息。

找到库依赖关系:

  • 在Windows上®系统,从该网站下载依赖沃克工具https://www.dependencywalker.com

  • 针对Visual Studio®用户,电话:

    dumpbin /家属libname.dll
  • 在Linux上®系统,使用:

    ldd - d库名所以
  • macOS系统,使用:

    otool - l库名. dylib

库接口不包含任何类型的实例

什么类,见文档库。为图书馆库名类型:

医生clib.libname

在某些情况下,出版商可能会创建一个库接口,不包含类或其他功能从原来的c++库。信息如何在MATLAB接口,包括功能缺失如何完整的库定义文件中定义

无效的clib数组元素类型名称

MATLAB的名字clib数组元素类型包括clib和图书馆的名字。有关更多信息,请参见clibArray

例如,对于图书馆库名包含类MyClassclib数组类型是:

clib.array.libname.MyClass

和MATLAB元素类型是:

clib.libname.MyClass

对于基本的c++类型,使用上骆驼的元素类型名称。例如,如果c++类型,然后clib数组类型是:

clib.array.libname.Double

和MATLAB元素类型是:

clib.libname.Double

类型的第一个字母必须大写

在创建clib数组,MATLAB c++基本类型的名称转换为上层驼峰式大小写。

例如,如果c++类型符号整数,然后MATLAB clib数组类型库库名是:

clib.array.libname.SignedInt

和元素类型是:

clib.libname.SignedInt

对于字符串,如果c++类型std:: string,那么:

clib.array.libname.std。字符串% clib clib.libname.std数组类型。字符串%元素类型

当调用库函数访问冲突

必须建立库文件在发布模式下,使用MATLAB的c++编译器支持。金宝app如果你在调试模式下构建图书馆,它可能不符合MATLAB,导致程序的终止。