问题 错误:无效的MEX文件,找不到指定的模块


我在笔记本电脑上成功编译了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.  

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


5046
2018-03-11 12:20


起源

你有32或64位安装吗? - Nick
是的,我有32位安装。我的操作系统也是32位 - anand
在配置文件模式下使用MS Dependency Walker来调试它 - David Heffernan


答案:


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

  1. 您没有MEX功能所依赖的所有必需库。
  2. 您在不同版本的MATLAB上运行MEX文件而不是编译它。

无论哪种方式,要找到此错误的来源,它表示您需要列出所有从属库文件并验证它们是否存在于您尝试运行MEX文件的系统中,并且还建议 Dependecy Walker 作为这样做的工具。


9
2018-03-11 13:02



在使用Dependency Walker后,它显示..? CV210d.dll? cxcore210d.dll? libmex.dll? libmx.dll。对于上述所有内容,它显示“错误打开文件。系统找不到指定的文件(2)。” - anand
@anand这是与OpenCV相关的东西。你的笔记本电脑上有这个文件吗? - Eitan T
是的,我的笔记本电脑上的所有这个文件都在C:\ OpenCV2.1 \ bin目录下。我不知道在此之后该怎么办......请建议解决方案。 - anand
是的,我在环境变量中添加了OpenCV库路径。 - anand
谢谢EitanT。当我在环境变量中添加'C:\ OpenCV2.1 \ bin'路径时,问题就解决了。 - anand


你是否在另一个系统上使用mex文件而不是创建它的文件?

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


4
2018-03-11 12:45



不,我在机器上分别成功编译了mex文件。但当我试图在我的笔记本电脑上运行该mexw32文件时,它显示我的错误。 - anand


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

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

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


0
2018-05-03 14:11





我有类似的问题。我只是链接1'lib'所以我只是将该lib复制到与mexw64相同的文件夹中并且它有效。

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


0
2017-10-28 13:54