Проблемы MEX во время компиляции - PullRequest
0 голосов
/ 09 апреля 2019

У меня установлена ​​64-битная система Windows 10 с установленной MATLAB 2013b.Сейчас я использую компилятор SDK 7.1 для компиляции программы ac ++.Это прекрасно работает, поскольку он создал файл "XXX.mexw64".Но когда я запускаю этот файл, я получаю сообщение об ошибке: Неверный файл MEX: указанный модуль не найден.Что может быть не так и где?

Я попытался переустановить SDK-компилятор со всеми комбинациями пакетов Visual Studio, как показано на разных сайтах.

Я использовал программу обхода зависимостей, чтобы найти то, чего не хватает,и я считаю, что сотни и сотни файлов отсутствуют.Я не могу заменить ВСЕ из них, могу ли я?

Файл MEX, созданный окончательно (это было успешно) с именем "uhdinterface.mexw64", должен наконец-то запуститься, не так ли?

1 Ответ

0 голосов
/ 11 апреля 2019

Сообщение «Указанный модуль не найден» является довольно загадочным для MATLAB способом сообщить вам, что не может найти требуемую dll на вашем пути. Зависимость Уокер всегда будет показывать много файлов, которые не могут быть найдены, но наиболее важными являются DLL верхнего уровня. Определите, какая DLL верхнего уровня не находится на вашем пути (это ваша системная переменная среды PATH, а не ваш путь MATLAB) и добавьте ее через

setenv('PATH',[getenv('PATH')';C:\Path\to\your\dll']).

Причина, по которой ваш mex-файл скомпилирован, заключается в том, что он был правильно связан (необходимые библиотеки были найдены во время компиляции / компоновки), но некоторые из них по-прежнему полагаются на выполнение во время выполнения.

...