Поиск и устранение проблем с обновлением S-Function Build для R2020b

Моя модель pre-R2020b использует S-Функции. Когда я перенес свою модель в текущий релиз, я вижу это сообщение, связанное с S-функцией, в журнале сборки:

undefined reference to 'C function in S-Function'

Что означает эта проблема

В R2020b компилятор для сборок модели изменился с Windows® совместимый компилятор C с QNX® Нейтрино® Компилятор C++. Чтобы учесть это изменение, обновите код S-Function для совместимости С++.

Совет

S-функции Фортран не поддерживаются в R2020b и более поздних релизах Simulink® Real-Time™.

Попробуйте это решение

Чтобы обновить код S-Function для совместимости С++, измените объявление S-Function в заголовочном файле.

Для примера обновите это объявление C S-Function:

void getAllDataMyFunction(short);
void myfunction_initialize(short, unsigned char*, short*);
void myfunction_terminate(short, int);

Обновил код к этому объявлению C++ S-Function:

#ifdef __cplusplus
extern "C" {
#endif

void getAllDataMyFunction(short);
void myfunction_initialize(short, unsigned char*, short*);
void myfunction_terminate(short, int);

#ifdef __cplusplus
}
#endif

Прежде чем создавать обновленный код, не забудьте удалить все программные продукты из предыдущих сборок моделей.

Похожие темы

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