Если MATLAB® не может найти все файлы .dll
ссылаемыми файлом MEX, он не может загрузить файл MEX. Например, предположите файл MEX, A
зависит от библиотеки subA.dll
, которая не находится на системном пути. Если вы вызываете A.mexw64
в папке L:\mylibs\
, отображениях MATLAB:
Invalid MEX-file 'L:\mylibs\A.mexw64': Missing dependent shared libraries 'subA.dll' required by 'L:\mylibs\A.mexw64'
Если символ, требуемый разделяемой библиотекой, отсутствует, MATLAB отображает сообщение, подобное следующему:
Invalid MEX-file 'L:\mylibs\A.mexw64': Missing symbol 'q' in 'L:\mylibs\subA.dll' required by L:\mylibs\A.mexw64'
Найти библиотечные зависимости:
В системах Windows® загрузите Зависимость утилита Уокера с веб-сайта http://www.dependencywalker.com.
В системах Linux® используйте:
ldd -d libname.so
В macOS системах используйте:
otool -L libname.dylib
Для файлов .dll
, что файл MEX, соединенный против того, когда это было создано, файлы .dll
, должен быть на системном пути или в той же папке как файл MEX.
Файлы MEX могут потребовать дополнительных библиотек, которые не соединяются с файлом MEX. Отказ найти одну из этих явным образом загруженных библиотек не может препятствовать тому, чтобы файл MEX загрузил, но препятствует тому, чтобы она работала правильно. Путем поиска файлов, используемым, чтобы найти эти явным образом загруженные библиотеки, управляет код, который загружает библиотеки и не может включать папку, которая содержит файл MEX. Консультируйтесь с документацией библиотеки относительно соответствующих местоположений установки.
Возможные причины для отказа включают:
Несовместимость версии MATLAB. Для получения дополнительной информации смотрите Совместимость версий.
Недостающие библиотеки времени выполнения компилятора. Если ваша система не имеет того же компилятора, который создал файл MEX, смотрите веб-сайт Microsoft® MSDN® для получения информации о Визуальном C ++® Распространяемые Пакеты.
Пропавшие без вести или неправильно установленные специализированные библиотеки времени выполнения. Свяжитесь со своим файлом MEX или поставщиком библиотеки.