司败的man 2023-11-19 10:52 采纳率: 66.7%
浏览 131
已结题

keil软件使用extern报错

我在keil里command.h里面写了extern int human_x;
在uart.c里面写了#include "command.h"和human_x = atoi(&g_RxBuf1_data[12]);
但是会报错Error: L6218E: Undefined symbol human_x (referred from uart.o).
怎么办

  • 写回答

1条回答 默认 最新

  • qllaoda 2023-11-19 10:56
    关注

    extern表示声明这个变量来自外部,并不会定义一个新的变量。
    如果你所有涉及到这个变量的地方都是extern,那这个变量实际上是没有定义的,在连接的时候找不到定义,自然就报错了。
    要保证有且只有一个c代码里用的不是extern方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月19日