在使用 avr-gcc 进行编译时,我遇到了如下链接器错误:
undefined reference to `__cxa_pure_virtual'
我发现这个文件说:
该
__cxa_pure_virtual
函数是在调用纯虚函数时调用的错误处理程序。如果您正在编写具有纯虚函数的 C++ 应用程序,则必须提供自己的
__cxa_pure_virtual
错误处理函数。例如:
extern "C" void __cxa_pure_virtual() { while (1); }
按照建议定义此函数可修复错误,但我想知道:
- 这个函数的目的是什么,
- 为什么我需要自己定义它和
- 为什么将其编码为无限循环是可以接受的?