Отказы компиляции
Вы обычно компилируете свой код 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\examples\compilersdk, где matlabroot корневая папка вашей установки MATLAB.
Вашему объекту MATLAB не удается загрузить?
Если вашему объекту MATLAB не удается загрузить, это обычно - результат MATLAB Runtime, не находящего требуемые определения классов.
При работе с объектами MATLAB, которые загружаются из файла MAT, не забудьте включать следующий оператор в функцию MATLAB:
%#function class_constructor
Используя %#function прагма обеспечивает зависимость анализатор, чтобы загрузить необходимые определения классов, позволяя MATLAB Runtime успешно загрузить объект.
Если вы компилируете приложение драйвера, вы используете 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. Это может влиять на вашу способность отобразить определенные символы. Для получения информации об изменении настроек локали смотрите свою Справку операционной системы.