Процесс сборки создает ошибку несоответствия версии компилятора.
Проверьте список поддерживаемых и совместимых компиляторов, доступных в www.mathworks.com/support/compilers/current_release/
.
Обновите или измените компилятор. Дополнительные сведения см. в разделе Выбор и настройка компилятора.
Перестроите модель.
Программа, сгенерированная для модели, дает различные результаты от результатов симуляции модели. Сгенерированный исходный код включает в себя арифметическую операцию, которая производит целочисленное переполнение со знаком. Возможно, ваш компилятор не реализует поведение переноса для условий целочисленного переполнения со знаком. Или, если вы используете компилятор, который поддерживает перенос, возможно, что вы не конфигурировали его, чтобы использовать -fwrapv
опция.
Для получения дополнительной информации смотрите «Генератор кода полагается на неопределенное поведение языка C для целочисленного переполнения».
Если ваш компилятор может принудительно перенос поведение, включите его. Например, для компилятора gcc или компилятора на основе gcc, такого как MinGW, задайте опцию компилятора -fwrapv
.
Выберите компилятор, который проверяет наличие целочисленного переполнения.
Если у вас есть Embedded Coder®, разрабатывайте и применяйте библиотеку замещения кода для замены кода, сгенерированного для подписанных целых чисел.
Процесс сборки генерирует ожидаемый исходный код, но исполняемая программа дает неожиданные результаты. Сгенерированный исходный код появляется должным образом. Однако исполняемая программа дает неожиданные результаты.
Выполните одно из следующих действий:
Понизите уровень оптимизации компилятора.
Установите параметр конфигурации Compiler optimization level равным Custom
.
В поле Custom compiler optimization flags задайте более низкий уровень оптимизации.
Перестроите модель.
Отключите оптимизацию компилятора.
Установите Compiler optimization level значение Optimizations off (faster builds)
.
Перестроите модель.
Для получения дополнительной информации см. «Оптимизация компилятора управления» и документацию компилятора.
Проблема | Действие |
---|---|
Ошибка в строении компилятора. | Убедитесь, что MATLAB® поддерживает компилятор и версию, которую вы хотите использовать. Список поддерживаемых и совместимых компиляторов см. в разделе |
Переменные окружения неправильно настроены для утилиты make, компилятора или линкера. Например, установка инструментов Cygwin на платформе Windows влияет на переменные окружения, используемые другими компиляторами. | Проверьте параметры переменного окружения для системы при помощи |
Ошибка присутствует в пользовательском коде, заданном как блок S-Function или в Custom Code. Например, код ссылается на заголовочный файл, который компилятор не может найти. | Чтобы изолировать источник задачи, удалите пользовательский код из модели, отладке и перестроите модель. |
Модель включает блок, такой как блок драйверов устройства, который не предназначен для использования с выбранным в настоящее время системным целевым файлом. | Удалите системный блок, относящийся к целевому файлу, или сконфигурируйте модель для использования с другим системным файлом. |
Ошибка linker о неопределенной ссылке на данные появляется, когда сборка модели генерирует исполняемую программу из иерархии модели-ссылки, и эти условия верны:
| Чтобы решить проблему, выберите один из следующих методов:
|
Если вы используете компилятор LCC, и путь к папке модели содержит ampersand (&
), процесс сборки приводит к ошибке.
Удалите амперсанд из пути к папке модели. Затем перестроите модель.
Если вы компилируете код Rapid Accelerator, компилятор LCC может привести к ошибке, связанной с пределами линии. Быстрый код Accelerator может иметь более длинные линии из-за запутывания.
Скомпилируйте код Rapid Accelerator с помощью компилятора, который поддерживает более длинные линии кода.