我开始通过Atmel Studio收到以下链接器错误:

c:/program files (x86)/atmel/studio/7.0/toolchain/arm/arm-gnu-toolchain/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m\libc.a(lib_a-readr.o):
In function `_read_r':
    C:\Users\Administrator\Documents\myproj\Debug\readr.c(1,1): error: undefined reference to `_read'


我在项目中添加了virtual方法后,发生了这种情况。到底是怎么回事?

最佳答案

最初来自this site的答案。

发生的事情是内置的__cxa_pure_virtual默认使用_read_write通过printf进行操作。要修复,请显式定义该处理程序以执行其他操作。

extern "C" void __cxa_pure_virtual();
extern "C" void __cxa_pure_virtual() {
    // Add custom handler here
    while(1);
}

关于c++ - Atmel Studio:对“_read”的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48625878/

10-10 11:58