Отказы проверки
После того, как вы успешно скомпилировали приложение, следующий шаг - протестировать его на машине разработки и развернуть на целевой машине. Обычно на целевой машине нет MATLAB® и требует установки MATLAB Runtime. Распределение включает все файлы, требуемые вашим приложением для выполнения, включая исполняемый файл, развертываемый архив и MATLAB Runtime.
Протестируйте приложение на машине разработки, запустив приложение против MATLAB Runtime, поставляемой с MATLAB Compiler™. Это позволит убедиться, что библиотечные зависимости верны, что развертываемый архив может быть извлечен, и что все коды MATLAB, файлы MEX - и файлы поддержки, необходимые приложению, были включены в архив. Если вы столкнулись с ошибками при тестировании вашего приложения, следующие вопросы могут помочь вам изолировать проблему.
Вы можете выполнить приложение из MATLAB?
На машине разработки можно протестировать выполнение приложения, выпустив !
application-name
в подсказку MATLAB. Если ваше приложение выполняется в MATLAB, но не извне, это может указать на проблему с системой PATH
переменная.
Начинает ли приложение выполнение и приводит ли оно к MATLAB или другим ошибкам?
Убедитесь, что вы включили все необходимые файлы при компиляции приложения (см. readme.txt
файл, сгенерированный вашей компиляцией для получения дополнительной информации).
Функции, которые вызываются из вашего основного файла MATLAB, автоматически включаются MATLAB Compiler; однако функции, которые не вызываются явным образом, например, через EVAL, необходимо включать при компиляции с помощью -a
переключатель mcc
команда. Кроме того, любые файлы поддержки, такие как .mat
, .txt
, или .html
файлы нужно добавить в архив с -a
переключатель. Существует ограничение на функциональность MATLAB и связанных тулбоксов, которые могут быть скомпилированы. Проверьте документацию, чтобы убедиться, что функции, используемые в файлах MATLAB вашего приложения, действительны. Проверьте файл mccExcludedFiles.log
на машине разработки. В этом файле перечислены все функции, вызываемые из вашего приложения, которые не могут быть скомпилированы.
Установлено ли несколько версий MATLAB?
Исполняемые файлы, сгенерированные MATLAB Compiler, предназначены для работы в окружении, в которой установлено несколько версий MATLAB. Некоторые старые версии MATLAB могут быть несовместимы с этой архитектурой.
В Windows®, убедитесь, что matlabroot
\ среда выполнения\win64
версия MATLAB, в которой вы компилируете, появляется перед matlabroot
\ среда выполнения\win64
других версий MATLAB, установленных на PATH
окружение на вашей машине.
Точно так же в UNIX убедитесь, что динамические пути к библиотеке (LD_LIBRARY_PATH
в Linux®) соответствовать. Сделайте это путем сравнения выходов !printenv
в подсказку MATLAB и printenv
в командном интерпретаторе. Использование этого пути позволяет вам использовать mcc
из командной строки операционной системы.
Если вы тестируете независимый исполняемый файл или совместное приложение библиотеки и драйвера, вы установили MATLAB Runtime?
Все общие библиотеки, необходимые для автономного исполняемого или общей библиотеки, содержатся в MATLAB Runtime. Установка среды MATLAB Runtime требуется для любого из целевых объектов развертывания.
Вы получаете сообщение об ошибке отсутствующей библиотеки DLL?
Сообщения об ошибке, указывающие на отсутствующие библиотеки DLL, такие как mclmcrrt7x.dll
или mclmcrrt7x.so
обычно вызваны неправильной установкой MATLAB Runtime. Также возможно, что MATLAB Runtime установлен правильно, но PATH
, LD_LIBRARY_PATH
, или DYLD_LIBRARY_PATH
переменные заданы неправильно. Дополнительные сведения об установке среды MATLAB Runtime на компьютере развертывания см. в разделе Установка и настройка MATLAB Runtime.
Внимание
Не решайте эти проблемы, перемещая библиотеки или другие файлы в структуре папки MATLAB Runtime. Система предназначена для использования различных версий MATLAB Runtime, работающих на одной машине. Структура папки является важной частью этой функции.
Поддерживает ли видеокарта вашей системы графическое приложение?
В ситуациях, когда существующая аппаратная видеокарта не поддерживает графическое приложение, следует использовать программное обеспечение OpenGL. Библиотеки OpenGL видны для приложения путем добавления matlab/sys/opengl/lib/arch
на LD_LIBRARY_PATH
. Для примера:
setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:matlab/sys/opengl/lib/arch
Для проблем с графикой MATLAB в Linux задайте переменную окружения LD_LIBRARY_PATH
кому:
setenv LD_LIBRARY_PATH $MATLAB/sys/opengl/lib/glnxa64:$LD_LIBRARY_PATH
Правильно ли установлена OpenGL в вашей системе?
При поиске библиотек OpenGL MATLAB Runtime сначала просматривает путь к системной библиотеке. Если OpenGL там не найден, он будет использовать LD_LIBRARY_PATH
окружение для поиска библиотек. Если вы получаете отказы из-за того, что библиотеки OpenGL не найдены, можно добавить расположение библиотек OpenGL к LD_LIBRARY_PATH
переменная окружения. Для примера:
setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:matlab/sys/opengl/lib/arch