Ошибки компиляции
Обычно код 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 SDK™ и находится вmatlabroot\extern\examples\compilersdk, где matlabroot является корневой папкой установки MATLAB.
Не удалось загрузить объект MATLAB?
Если объект MATLAB не загружается, это обычно является результатом того, что среда выполнения MATLAB не находит необходимых определений классов.
При работе с объектами MATLAB, загруженными из MAT-файла, не забудьте включить следующую инструкцию в функцию MATLAB:
%#function class_constructor
Использование %#function pragma заставляет анализатор зависимостей загружать необходимые определения классов, позволяя среде выполнения MATLAB успешно загружать объект.
При компиляции приложения драйвера используется mbuild?
MathWorks рекомендует и поддерживает использование mbuild для компиляции приложения драйвера. mbuild разработан и протестирован для правильной сборки приложений драйверов. Это гарантирует, что все файлы заголовка MATLAB будут найдены компилятором C/C + +, а все необходимые библиотеки будут указаны и найдены компоновщиком.
Вы пытаетесь скомпилировать приложение драйвера с помощью Microsoft
Visual Studio или другой среды IDE?
При использовании среды IDE в дополнение к связи с созданной библиотекой экспорта необходимо включить дополнительную зависимость к mclmcrrt.lib. Эта библиотека предоставляется для всех поддерживаемых компиляторов Microsoft ® вmatlabroot\extern\lib\arch\microsoft.
Вы импортируете правильные версии библиотек импорта?
Если на компьютере установлено несколько версий MATLAB, возможна ссылка на более старую или несовместимую версию библиотеки. Убедитесь, что единственной библиотекой MATLAB, с которой выполняется ссылка, является mclmcrrt.lib и ссылки на него из соответствующей папки.
Можно ли скомпилировать пример программы matrixdriver?
Вы получаете 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. Это может повлиять на возможность отображения определенных символов. Сведения об изменении параметров языкового стандарта см. в справке операционной системы.