Моя модель 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
Прежде чем создавать обновленный код, не забудьте удалить все программные продукты из предыдущих сборок моделей.