Процесс сборки производит ошибку несоответствия версии компилятора.
Проверяйте список поддерживаемых и совместимых компиляторов, доступных в www.mathworks.com/support/compilers/current_release/
.
Обновите или измените свой компилятор. Для получения дополнительной информации смотрите, Выбирают и Конфигурируют Компилятор.
Восстановите модель.
Программа, сгенерированная для модели, производит различные результаты результатов симуляции модели. Сгенерированный исходный код включает арифметическую операцию, которая производит переполнение целого числа со знаком. Возможно, что ваш компилятор не реализует переносящееся поведение для условий переполнения целого числа со знаком. Или, если вы используете компилятор, который поддерживает перенос, возможно, что вы не сконфигурировали его, чтобы использовать опцию -fwrapv
.
Для получения дополнительной информации см., что “Генератор кода Полагается на Неопределенное Поведение языка C для Целочисленного переполнения”.
Если ваш компилятор может обеспечить переносящееся поведение, включите его. Например, для gcc компилятора или компилятора на основе gcc, такого как MinGW, задают параметр компилятора -fwrapv
.
Выберите компилятор, который проверяет на целочисленное переполнение.
Если вы имеете Embedded Coder®, разрабатываете и применяете заменяющую библиотеку кода, чтобы заменить код, сгенерированный для целых чисел со знаком.
Процесс сборки генерирует ожидаемый исходный код, но исполняемая программа приводит к неожиданным результатам. Сгенерированный исходный код появляется как ожидалось. Однако исполняемая программа приводит к неожиданным результатам.
Выполнить одно из следующих действий:
Понизьте уровень компиляторной оптимизации.
Выберите Custom
для Образцового Параметра конфигурации Code Generation> Compiler optimization level.
В поле Custom compiler optimization flags задайте более низкий уровень оптимизации.
Восстановите модель.
Отключите оптимизацию компилятора.
Выберите Optimizations off (faster builds)
для Образцового Параметра конфигурации Code Generation> Compiler optimization level.
Восстановите модель.
Для получения дополнительной информации смотрите Оптимизацию Компилятора Управления (Simulink Coder) и ваша документация компилятора.
Проблема | Действие |
---|---|
Ошибка присутствует в настройке компилятора. | Убедитесь, что MATLAB® поддерживает компилятор и версию, которую вы хотите использовать. Для списка в настоящее время поддерживаемых и совместимых компиляторов смотрите |
Переменные окружения неправильно настраиваются для вашего делать утилиту, компилятор или компоновщика. Например, установка инструментов Cygwin на платформе Windows влияет на переменные окружения, используемые другими компиляторами. | Рассмотрите настройки переменной окружения для своей системы при помощи команды |
Ошибка присутствует в пользовательском коде, заданном как Блок s-function или в Configuration Parameters> Code Generation> Custom Code. Например, код относится к заголовочному файлу, который не может найти компилятор. | Чтобы изолировать источник проблемы, удалите пользовательский код из модели, отладки, и восстановите модель. |
Модель включает блок, такой как блок драйвера устройства, который не предназначается для использования с в настоящее время выбранным системным конечным файлом. | Удалите систему специфичный для конечного файла блок или сконфигурируйте модель для использования с другим системным конечным файлом. |
Ошибка компоновщика о неопределенной ссылке на данные появляется, когда сборка модели генерирует исполняемую программу от иерархии модели - ссылки, и эти условия верны:
| Чтобы решить вопрос, выберите один из этих методов:
|
Если вы используете компилятор LCC, и ваш образцовый путь к папке содержит амперсанд (&
), процесс сборки производит ошибку.
Удалите амперсанд из образцового пути к папке. Затем восстановите модель.
Если вы компилируете Быстрый код Акселератора, компилятор LCC может произвести ошибку, связанную с пределами строки. Быстрый код Акселератора может иметь более долгие длины строки из-за путаницы.
Скомпилируйте свой Быстрый код Акселератора с помощью компилятора, который поддерживает более длительные строки кода.