无效的 MEX 文件错误
如果 MATLAB® 找不到 MEX 文件引用的所有 .dll
文件,则无法加载该 MEX 文件。MATLAB 显示以下错误消息:
Invalid MEX-file mexfilename: The specified module could not be found.
其中 mexfilename
是依存关系有错误的模块。此模块找不到它所依赖的库。要解决此错误,请查找所依赖库的名称,并确定它们是否存在于您的系统和系统路径中。要查找库依赖项,请执行以下操作:
在 Windows® 系统上,从网站 https://www.dependencywalker.com 下载 Dependency Walker 实用工具。
在 Linux® 系统上,使用:
ldd -d libname.so
在 macOS 系统上,使用:
otool -L libname.dylib
对于 MEX 文件在编译时所链接的 .dll
文件,这些 .dll
文件必须位于系统路径上或位于与 MEX 文件相同的文件夹中。
MEX 文件可能需要其他未链接到 MEX 文件的库。未能找到其中一个显式加载的库可能不会导致 MEX 文件无法加载,但会导致其无法正常工作。加载库的代码控制用于查找这些库的搜索路径。搜索路径可能不包括包含 MEX 文件的文件夹。有关正确的安装位置,请查阅库文档。
可能的故障原因包括:
MATLAB 版本不兼容。有关详细信息,请参阅MEX 版本兼容性。
缺少编译器运行时库。如果您的系统没有包含用于编译 MEX 文件的相同编译器,请参阅 Microsoft® MSDN® 网站,了解关于 Visual C++® 可再发行软件包的信息。
缺少或不正确地安装了专用运行时库。请联系您的 MEX 文件或库供应商。