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