故障排除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
。
例如,对于图书馆库名
包含类MyClass
clib数组类型是:
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,导致程序的终止。