2013-03-11 1 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. 

Этот же файл mex скомпилирован и успешно запущен на моем компьютере под XP SP3.

+0

У вас есть 32 или 64-битная установка? – Nick

+0

Да, у меня 32-битная установка. my os также 32bit – anand

+1

Используйте MS Dependency Walker в режиме профиля для отладки этого –

ответ

4

Вы являетесь файлом mex в другой системе, чем тот, на котором он создан?

Если это так, то вам необходимо установить Microsoft Visual C++ Redistributable на эту машину.

+1

Нет, я скомпилировал файл mex на обоих устройствах отдельно и успешно. Но когда я пытался запустить этот файл mexw32 на своем ноутбуке, он показывает мне ошибку. – anand

9

This MathWorks support link предлагает две возможных причины для вашей проблемы:

  1. Вы не имеете все необходимые библиотеки, что MEX-функция зависит.
  2. Вы используете MEX-файл в другой версии MATLAB, чем он был скомпилирован.

В любом случае, чтобы найти источник этой ошибки он говорит, что вам нужно перечислить все зависимые файлы библиотек и проверять их наличие в системе, которую вы пытаетесь запустить MEX файл на, а также рекомендует Dependecy Walker как инструмент для этого.

+0

после использования Dependency Walker, он показывает .. ? CV210d.dll ? cxcore210d.dll ? libmex.dll ? libmx.dll. Для всего вышеперечисленного он показывает «Ошибка открытия файла. Система не может найти указанный файл (2)». – anand

+0

@anand Это связано с OpenCV. У вас есть этот файл на вашем ноутбуке? –

+0

да, у меня есть весь этот файл на моем ноутбуке в каталоге C: \ OpenCV2.1 \ bin. Я не знаю, что делать после этого ... Пожалуйста, предложите решение. – anand

0

У меня возникла эта проблема также при обновлении с Matlab2010a/VS2008 до Matlab2013a/VS2010.

Все мои переменные среды были отправлены правильно. Устранена проблема с перезагрузкой DLL-файлов OpenCV, я предполагаю, что она все еще пытается связать с DLL OpenCV для VS2008 (хотя я изменил путь). Однако мой файл mex не смог найти libmex.dll.

Когда я установил Matlab2013a, я не удалял старую версию (на случай, если захочу вернуться). Однако это и послужило причиной моей проблемы. Как только я удалил старую версию Matlab и перезагрузился, проблема исчезла.

0

У меня была аналогичная проблема. Я только связывался с 1 'lib', поэтому я просто скопировал эту библиотеку в ту же папку, что и mexw64, и она сработала.

Я не ткнул в нужное место, чтобы сказать MATLAB, чтобы добавить реальное местоположение библиотеки в любой путь, на который он смотрит.

Смежные вопросы