Тестирование отказов
После того, как вы успешно скомпилировали свое приложение, следующий шаг должен протестировать его на машине разработки и развернуть его на целевой машине. Как правило, целевая машина не имеет 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
switch. Существует ограничение на функциональность MATLAB и сопоставленных тулбоксов, которые могут быть скомпилированы. Проверяйте документацию, чтобы видеть, что функции, используемые в файлах MATLAB вашего приложения, допустимы. Проверяйте файл mccExcludedFiles.log
на машине разработки. Это списки файлов, которые все функции вызвали из вашего приложения, которое не может быть скомпилировано.
У вас есть несколько версий MATLAB установленными?
Исполняемые файлы, сгенерированные MATLAB Compiler, спроектированы, чтобы запуститься в среде, где несколько версий MATLAB установлены. Некоторые более старые версии MATLAB не могут быть полностью совместимы с этой архитектурой.
На Windows®, гарантируйте что matlabroot
\runtime\win64
из версии MATLAB, в котором вы компилируете, появляется перед matlabroot
\runtime\win64
из других версий MATLAB, установленного на PATH
переменная окружения на вашей машине.
Точно так же на UNIX®, гарантируйте что динамические пути к библиотеке (LD_LIBRARY_PATH
на Linux®) соответствие. Сделайте это путем сравнения выходных параметров !printenv
в подсказке MATLAB и printenv
при приглашении оболочки. Используя этот путь позволяет вам использовать mcc
из командной строки операционной системы.
Если вы тестируете независимый исполняемый файл или совместно использованную библиотеку и приложение драйвера, вы устанавливали MATLAB Runtime?
Все разделяемые библиотеки, требуемые для вашего независимого исполняемого файла или совместно использованной библиотеки, содержатся в MATLAB Runtime. Установка MATLAB Runtime требуется для любой из целей развертывания.
Вы получаете сообщение об ошибке о недостающем DLL?
Сообщения об ошибке, указывающие пропускающий DLLs, такие как mclmcrrtX_XX
.dll
или mclmcrrtX_XX
.so
обычно вызываются неправильной установкой MATLAB Runtime. Для получения информации об установке MATLAB Runtime смотрите Установку и Сконфигурируйте MATLAB Runtime.
Также возможно, что MATLAB Runtime установлен правильно, но PATH
, LD_LIBRARY_PATH
, или DYLD_LIBRARY_PATH
переменная установлена неправильно. Для получения информации об установке переменных окружения смотрите Установленный Путь MATLAB Runtime для Развертывания.
Внимание
Не решайте эти задачи движущимися библиотеками или другими файлами в структуре папок MATLAB Runtime. Система MATLAB Runtime спроектирована, чтобы вместить различные версии MATLAB Runtime, работающие с той же машиной. Структура папок является важной частью этой функции.
Видеокарта вашей системы поддерживает графическое приложение?
В ситуациях, где существующая аппаратная видеокарта не поддерживает графическое приложение, используйте программное обеспечение OpenGL. Библиотеки OpenGL отображаются для приложения путем добавления matlabroot
/sys/opengl/lib/arch
к пути к библиотеке. Например, на Linux, введите следующее в интерпретатор Bash:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:matlabroot/sys/opengl/lib/glnxa64
Для получения дополнительной информации об установке переменных окружения смотрите Установленный Путь MATLAB Runtime для Развертывания.
OpenGL правильно установлен в вашей системе?
При поиске библиотек OpenGL MATLAB Runtime сначала считает путь к системной библиотеке. Если OpenGL не найден там, он использует LD_LIBRARY_PATH
переменная окружения, чтобы определить местоположение библиотек. Если вы получаете отказы из-за библиотек OpenGL, не находимых, можно добавить местоположение библиотек OpenGL к LD_LIBRARY_PATH
переменная окружения. Например, на Linux, введите следующее в интерпретатор Bash:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:matlabroot/sys/opengl/lib/glnxa64
Для получения дополнительной информации об установке переменных окружения смотрите Установленный Путь MATLAB Runtime для Развертывания.