При создании библиотеки, функции 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.