Во время компиляции с avr-gcc я столкнулся с ошибками компоновщика, такими как:
undefined reference to `__cxa_pure_virtual'
Я нашел этот документ, который гласит:
Функция
__cxa_pure_virtual
- это обработчик ошибок, который вызывается при вызове чистой виртуальной функции.Если вы пишете приложение С++ с чистыми виртуальными функциями, вы должны предоставить свою собственную функцию обработки ошибок
__cxa_pure_virtual
. Например:
extern "C" void __cxa_pure_virtual() { while (1); }
Определение этой функции, как предложено, исправляет ошибки, но я хотел бы знать:
- Какова цель этой функции,
- почему мне нужно определить его самостоятельно и
- Почему допустимо кодировать его как бесконечный цикл?