Если MATLAB® не удается найти все .dll
файлы, на которые ссылается файл MEX, не могут загрузить файл MEX. MATLAB выводит следующее сообщение об ошибке:
Invalid MEX-file mexfilename: The specified module could not be found.
где mexfilename
- модуль с ошибкой зависимостей. Этот модуль не может найти зависимые библиотеки. Чтобы устранить эту ошибку, найдите имена зависимых библиотек и определите, присутствуют ли они в вашей системе и системном пути. Чтобы найти библиотечные зависимости:
В Windows® системы, загрузите утилиту Dependency Walker с веб-сайта https://www.dependencywalker.com.
На Linux® системы, использование:
ldd -d libname.so
В системах macOS используйте:
otool -L libname.dylib
Для .dll
файлы, с которыми связался файл MEX при построении, .dll
файлы должны находиться в системном пути или в той же папке, что и файл MEX.
Для файлов MEX могут потребоваться дополнительные библиотеки, которые не связаны с файлом MEX. Отказ поиска одной из этих явно загруженных библиотек может не помешать загрузке файла MEX, а помешать правильной работе. Код, загружающий библиотеки, управляет путем пути поиска файлов, используемым для поиска этих библиотек. Возможно, пути поиска файлов не содержат папку, содержащую файл MEX. Ознакомьтесь с документацией библиотеки по правильным местам установки.
Возможные причины отказа включают:
Несовместимость версий MATLAB. Дополнительные сведения см. в разделе Совместимость версий MEX.
Отсутствуют библиотеки во время выполнения компилятора. Если ваша система не имеет того компилятора, который создавал файл MEX, смотрите Microsoft® MSDN® веб-сайт для получения информации о Visual C++® Перераспределяемые пакеты.
Отсутствующие или неправильно установленные специализированные библиотеки во время выполнения. Обратитесь к поставщику файла MEX или библиотеки.