Если 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.
Недостающие библиотеки времени выполнения компилятора. Если ваша система не имеет того же компилятора, который создал файл MEX, смотрите веб-сайт Microsoft® MSDN® для получения информации о Визуальном C ++® Распространяемые Пакеты.
Пропавшие без вести или неправильно установленные специализированные библиотеки времени выполнения. Свяжитесь со своим файлом MEX или поставщиком библиотеки.