11

我已经在笔记本电脑上成功编译了 Mex 文件。但是当我运行它时,它会说Invalid mex file 'c:\newfolder\filename.mexw32' The specified module could not be found.

System specification:  
OS: windows 7  
MATLAB 2010a  
Microsoft Visual Studio 2008.  

相同的 mex 文件在我的 PC 上的 XP SP3 下编译并成功运行。

4

4 回答 4

9

此 MathWorks 支持链接为您的问题提出了两个可能的原因:

  1. 您没有 MEX 函数所依赖的所有必要库。
  2. 您在与编译时不同的 MATLAB 版本上运行 MEX 文件。

无论哪种方式,要找到此错误的来源,它表示您需要列出所有依赖库文件并验证它们在您尝试运行 MEX 文件的系统中的存在,并且还推荐使用Dependecy Walker作为工具去做。

于 2013-03-11T13:02:39.093 回答
4

您是否将 mex 文件放在另一个系统上,而不是创建它的系统上?

如果是这样,那么您需要在该机器上安装Microsoft Visual C++ Redistributable 。

于 2013-03-11T12:45:26.743 回答
0

从 Matlab2010a/VS2008 升级到 Matlab2013a/VS2010 时,我也遇到了这个问题。

我所有的环境变量都已正确发送。重新启动修复了未找到 OpenCV dll 的问题,我认为它仍在尝试链接到 VS2008 的 OpenCV dll(即使我已经更改了路径)。但是我的 mex 文件仍然找不到 libmex.dll。

当我安装Matlab2013a时,我没有卸载旧版本(以防我想回去)。然而,这是我的问题的原因。一旦我卸载了旧版本的 Matlab 并再次重新启动,问题就消失了。

于 2013-05-03T14:11:40.983 回答
0

我有一个类似的问题。我只链接了 1 个“lib”,所以我只是将该 lib 复制到与 mexw64 相同的文件夹中,它就可以工作了。

我没有四处寻找正确的位置来告诉 MATLAB 将 lib 的真实位置添加到它正在查看的任何路径中。

于 2014-10-28T13:54:04.347 回答