KeilV5编译出错?万万没有想到是这个问题。明明已经在头文件中声明了函数或变量,但是,任然提示“函数已使用但未定义”。或者“ Error: L6218E: Undefined symbolxxxxx
明明已经在头文件中声明了函数或变量,但是,任然提示“函数已使用但未定义”。或者“ Error: L6218E: Undefined symbol xxxxx (referred from xxxx.o).”。2,头文件包含顺序。如果两个头文件的包含顺序存在相互依赖,编译也会出错。此时该函数或者变量仅限当前.c文件调用,解决办法是去掉static修饰。如果你也出现上诉问题,你也可以尝试一下方式解决。
·
KeilV5编译出错?万万没有想到是这个问题。明明已经在头文件中声明了函数或变量,但是,任然提示“函数已使用但未定义”。或者“ Error: L6218E: Undefined symbol xxxxx (referred from xxxx.o).”。
如果你也出现上诉问题,你也可以尝试一下方式解决。
1,所使用的函数或者变量使用了static修饰。例如:
static void testfunc(void)
{
xxxxxx
}
此时该函数或者变量仅限当前.c文件调用,解决办法是去掉static修饰。
2,头文件包含顺序。如果两个头文件的包含顺序存在相互依赖,编译也会出错。例如:
A头文件如下:
#ifndef A_H
#define A_H
#include "b.h"
// 其他内容
#endif // A_H
B头文件如下:
#ifndef B_H
#define B_H
#include "a.h"
// 其他内容
#endif // B_H
解决办法是调试包含关系避免相互包含的情况出现。
更多推荐



所有评论(0)