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