Ошибка: недопустимый файл 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.
Тот же самый файл mex скомпилирован и успешно запущен на моем ПК под XP SP3.
Ответы
Ответ 1
Эта ссылка для поддержки MathWorks предлагает две возможные причины вашей проблемы:
- У вас нет всех необходимых библиотек, от которых зависит функция MEX.
- Вы используете MEX файл в другой версии MATLAB, чем он был скомпилирован.
В любом случае, чтобы найти источник этой ошибки, говорится, что вам нужно перечислить все файлы зависимых библиотек и проверить их существование в системе, в которой вы пытаетесь запустить файл MEX, а также рекомендует Dependecy Walker как инструмент для этого.
Ответ 2
Вы используете файл mex в другой системе, чем тот, на котором он создан?
Если это так, вам нужно установить Microsoft Visual С++ Redistributable на этой машине.
Ответ 3
У меня была и эта проблема при обновлении с Matlab2010a/VS2008 до Matlab2013a/VS2010.
Все мои переменные среды были отправлены правильно.
При перезагрузке исправлены проблемы с DLL файлами OpenCV, я предполагаю, что он все еще пытался связать с DLL OpenCV для VS2008 (хотя я изменил путь). Однако мой файл mex не смог найти libmex.dll.
Когда я установил Matlab2013a, я не удалял старую версию (в случае, если я хотел вернуться).
Однако это и послужило причиной моей проблемы.
Как только я удалил старую версию Matlab и снова перезагрузился, проблема исчезла.
Ответ 4
У меня была аналогичная проблема. Я только связывался с 1 'lib', поэтому я просто скопировал эту библиотеку в ту же папку, что и mexw64, и она сработала.
Я не пытаюсь найти подходящее место, чтобы сказать MATLAB, чтобы добавить реальное местоположение lib в любой путь, на который он смотрит.