exponenta event banner

Ошибки компилятора и компоновщика

При создании библиотеки, функции MEX или исполняемого файла из MATLAB ® Coder™ генератор кода вызывает компилятор C/C + + для создания двоичного артефакта. Во время этого процесса могут возникать ошибки построения. Эти ошибки могут возникать во время стадии компиляции, стадии связывания или на других стадиях построения. Ошибки компиляции и связывания, а также предупреждения можно просмотреть на вкладке Журналы построения отчета о создании кода.

Отображаемые сообщения об ошибках и предупреждения зависят от компилятора и цепочки инструментов, используемых для платформы. Для просмотра текущего компилятора или выбора другого в командной строке введите:

mex -setup

Ошибки построения могут возникать по разным причинам. Для диагностики и исправления ошибок может потребоваться исследовать сообщения об ошибках, перечисленные в документации компилятора. Ниже приведены некоторые часто встречающиеся проблемы, которые могут привести к ошибкам построения при создании кода.

Не удалось указать основную функцию

Укажите основную функцию для создания исполняемого файла C/C + +. Если не указать основную функцию, возникает ошибка построения. Основная функция содержится в отдельном основном файле. При создании кода MATLAB Coder создает пример основного файла, но не использует его автоматически для компиляции. Пример основной функции вызывает сгенерированный код с макетными входными значениями. Необходимо изменить основной пример или создать собственную основную функцию для реалистичной обработки ввода и вывода.

Можно указать основной файл в качестве параметра командной строки для codegen или в приложении MATLAB Coder, или с помощью параметров конфигурации. Дополнительные сведения и примеры см. в следующих разделах:

Если требуется, чтобы генератор кода автоматически использовал созданный основной файл примера для построения исполняемого файла в целях тестирования, можно установить GenerateExampleMain свойства объекта конфигурации для 'GenerateCodeAndCompile'. См. раздел Включение сгенерированного кода с использованием примера основной функции.

Не удалось указать внешние файлы кода

Если код использует внешние функции C в coder.ceval, то необходимо указать внешние файлы, содержащие эти функции, или могут возникнуть ошибки построения. Можно указать файлы в качестве параметров командной строки для codegen или в приложении MATLAB Coder, или с помощью параметров конфигурации. Дополнительные сведения и примеры см. в следующих разделах:

Ошибки, вызванные внешним кодом

При введении внешнего кода в процесс построения внешний код может вводить собственные ошибки. Внешний код можно ввести по нескольким каналам:

  • Внешние определения типов, создаваемые с помощью coder.opaque которые определены во внешних файлах заголовков.

  • Определения типов структуры, создаваемые с помощью coder.cstructname которые определены во внешних файлах заголовков.

  • Вызовы внешнего кода с помощью coder.ceval.

  • Спецификация внешних файлов сборки для codegen команда.

  • Включение внешних файлов кода coder.cinclude или coder.updateBuildInfo.

  • Включение внешнего кода через приложение, на вкладке Пользовательский код или через параметры конфигурации создания кода CustomSource и CustomInclude.

Этот перечень не является исчерпывающим. Для устранения ошибок, вызванных этими методами, необходимо изучить и устранить проблемы с внешним кодом или отсоединить внешний код от кода MATLAB.

Связанные темы

Внешние веб-сайты