Тестирование отказов
После того, как вы успешно скомпилировали свое приложение, следующий шаг должен протестировать его на машине разработки и развернуть его на целевой машине. Обычно целевая машина не имеет установки 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
\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, такие как 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