kei5 extern的

我在使用keil5时候,发现有个问题,我在头文件定义extern 时,在主函数调用会出现报错,不知道是哪里出问题了,本人接触keil5不久希望有人能帮忙解答
报错:.\Objects\Project.axf: Error: L6218E: Undefined symbol Compare (referred from main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.

img

img

img

Compare这个参数在哪个.c源文件里进行了定义,头文件里只能进行声明,不能进行定义参数的!

【以下回答由 GPT 生成】

问题分析:

根据报错信息,我们可以看到是文件main.o中引用了一个未定义的符号Compare。这可能是因为在主函数中未正确引用头文件或者没有正确定义变量Compare的原因。

解决方案如下:

  1. 确保头文件中使用extern关键字定义了变量Compare。例如,在头文件example.h中添加以下代码:
extern int Compare;
  1. 在主函数文件(一般是main.c)中正确包含头文件example.h。例如,在main.c文件的顶部添加以下代码:
#include "example.h"
  1. 确保在主函数中正确调用变量Compare。例如,在main函数中使用变量Compare,例如:
int main(void) {
    // 使用变量Compare
    Compare = 10;

    // 其他代码
    ...
}

请注意,变量Compare需要在主函数中正确定义,通常是在全局范围内定义。例如,在main.c文件的顶部添加以下代码:

int Compare = 0;

如果您遵循了上述步骤并确保代码正确,那么应该可以解决报错问题。如果问题仍然存在,请检查其他可能的错误,比如是否有其他地方定义了同名的变量Compare等。

希望这些解决方案对您有所帮助!如果还有任何问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^