Отказы компиляции
Вы обычно компилируете свой 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. Это может повлиять на способность отображать определенные символы. Дополнительные сведения об изменении установок локализации см. в справке по операционной системе.