Отказы компиляции
Вы обычно компилируете свой MATLAB® код на машине разработки, протестируйте полученный исполняемый файл на этой машине и разверните исполняемый файл и MATLAB Runtime на тестовой или клиентской машине без MATLAB. Процесс компиляции выполняет анализ зависимостей от вашего кода MATLAB, создает зашифрованный архив вашего кода и необходимого кода тулбокса, генерирует код оболочки и компилирует код оболочки в исполняемый файл. Если вашему приложению не удалось создать исполняемый файл, следующие вопросы могут помочь вам изолировать проблему.
Поддерживается ли ваш установленный компилятор MATLAB
Compiler SDK?
Вы компилируетесь внутри или вне MATLAB?
mcc
можно вызвать из командной строки операционной системы или из подсказки MATLAB. Когда бегаешь mcc
внутри окружения MATLAB MATLAB будет изменять переменные окружения в своём окружении по мере необходимости mcc
будет запускаться. Проблемы с PATH
, LD_LIBRARY_PATH
или другие переменные окружения, отображаемые в командной строке операционной системы, часто не отображаются в подсказке MATLAB. Окружение, которую MATLAB использует для mcc
можно отобразить в подсказке MATLAB. Для примера:
перечисляет окружение в Windows
® платформы.
перечисляет окружение в UNIX
® платформы. Использование этого пути позволяет вам использовать
mcc
из командной строки операционной системы.
Вы пытались скомпилировать какие-либо примеры C/C + + в
справке MATLAB Compiler SDK?
Исходный код для всех примеров C/C + + предоставляется с MATLAB Compiler SDK™ и расположен в matlabroot
\ extern\примеры\compilersdk
, где matlabroot
- корневая папка установки MATLAB.
Не удается загрузить ваш объект MATLAB?
Если ваш объект MATLAB не загружается, это обычно является результатом того, что MATLAB Runtime не находит необходимых определений классов.
При работе с объектами MATLAB, которые загружаются из файла MAT, не забудьте включить следующий оператор в функцию MATLAB:
%#function class_constructor
Использование %#function
pragma заставляет анализатор зависимостей загружать необходимые определения классов, позволяя MATLAB Runtime успешно загрузить объект.
Если вы компилируете приложение драйвера, используете ли вы mbuild?
MathWorks рекомендует и поддерживает использование mbuild
чтобы скомпилировать приложение драйвера. mbuild
разработан и протестирован для правильной сборки драйверов. Это гарантирует, что все файлы заголовков MATLAB найдены компилятором C/C + +, и что все необходимые библиотеки заданы и найдены линкером.
Вы пытаетесь скомпилировать приложение драйвера с помощью Microsoft
Visual Studio или другой среды IDE?
Если вы используете IDE, в дополнение к связыванию с сгенерированной библиотекой экспорта необходимо включить дополнительную зависимость от mclmcrrt.lib
. Эта библиотека предназначена для всех поддерживаемых Microsoft® компиляторы в matlabroot
\ extern\lib\ arch
\ майкрософт
.
Импортируете ли вы правильные версии библиотек импорта?
Если на компьютере установлено несколько версий MATLAB, возможно, на нее ссылается более старая или несовместимая версия библиотеки. Убедитесь, что единственная библиотека MATLAB, с которой вы связываетесь, mclmcrrt.lib
и ссылка на нее из соответствующей папки.
Вы можете скомпилировать пример матриксдрайвера?
Вы получаете MATLAB:I18n:InconsistentLocale
Предупреждение?
Предупреждающее сообщение
MATLAB:I18n:InconsistentLocale - The system locale setting,
system_locale_name, is different from the user locale
setting, user_locale_name
указывает на несоответствие между установкой локализации в системах Microsoft Windows. Это может повлиять на способность отображать определенные символы. Дополнительные сведения об изменении установок локализации см. в справке по операционной системе.