Знатоки C++, нужна подсказка! Линкер (GNU++17) не видит статические
объекты базового класса. Суть вкратце такая:
Есть класс Module, в к-ром объявлен статический объект
static CAN_TxQueue_t CAN_TxQueue; // тип CAN_TxQueue_t определен ранее через typedef
и статический метод, возвращающий указатель на него:
static CAN_TxQueue_t* getCAN_TxQueue(void) {
return &CAN_TxQueue;
}
Класс Module является базовым для наследования другими классами. Но, наверное, не суть.
Отнаследованные объекты создаются в классе-синглтоне через new.
В этом классе-синглтоне есть метод, возвращающий указатель на пресловутый статический объект через вызов статического метода
CAN_TxQueue_t* getCAN_TxQueue(void) {
return Module::getCAN_TxQueue();
}
Ну и вот, не имея претензий к синтаксису IDE (STM32CubeIDE) выдает ошибки линкера вида
undefined reference to `Module::CAN_TxQueue'
Какую тему копнуть?