2013-03-11 59 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的真實位置添加到它正在查看的任何路徑。

相關問題