2013-03-11 101 views
11

我已经在我的笔记本电脑上成功编译了Mex文件。但是当我运行它时,它说Invalid mex file 'c:\newfolder\filename.mexw32' The specified module could not be found错误:无效的MEX文件,无法找到指定的模块

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

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

+0

你有32或64位安装吗? – Nick 2013-03-11 12:22:34

+0

是的,我有32位安装。我的操作系统也是32位 – anand 2013-03-11 12:40:41

+1

在配置文件模式下使用MS Dependency Walker来调试此 – 2013-03-11 13:04:27

回答

4

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

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

+1

不,我在机器上分别编译了mex文件并成功完成。但是当我试图在我的笔记本电脑上运行mexw32文件时,它显示我错误。 – anand 2013-03-11 12:54:08

9

This MathWorks support link提出两个可能的原因,您的问题:

  1. 不必所有的MEX-功能依赖于必要的库。
  2. 您正在运行一个MATLAB编译的MEX文件。

无论哪种方式,找到这个错误的根源,它说,你需要列出所有相关的库文件,并确认在你试图运行MEX文件对系统的存在,并且还建议Dependecy Walker作为做这件事的工具。

+0

使用Dependency Walker后,显示.. ? CV210d.dll ? cxcore210d.dll ? libmex.dll ? libmx.dll。 以上所有内容都显示“打开文件时出错,系统找不到指定的文件(2)”。 – anand 2013-03-11 13:10:23

+0

@anand这与OpenCV有关。你的笔记本电脑上有这个文件吗? – 2013-03-11 13:11:18

+0

是的,我把所有这个文件放在C:\ OpenCV2.1 \ bin目录下的笔记本电脑上。在此之后我不知道该怎么办...请提出解决方案。 – anand 2013-03-11 13:15:22

0

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

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

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

0

我有一个类似的问题。我只是连接1'lib',所以我只是将该lib复制到与mexw64相同的文件夹中,并且它工作正常。

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

相关问题