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

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

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

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.

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

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

Похожие темы

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