编译时未定义的引用
Undefined reference on compile
我试图在 .c 文件中使用我已经在 .h 文件中声明的变量,但出现编译错误:
undefined reference to var
这是mach.c内容:
#include "machheader.h"
int
main( void )
{
var = 1;
printf("Variable %d\n", var);
}
而我的 machheader.h 只包含这个:
extern int var;
有什么想法吗?
在你的情况下,
extern int var;
是声明,不是定义。您需要在代码中定义 var
。
"undefined reference" 是 linker 错误而不是编译器错误。您需要 link 包含 var
实例化的目标代码,它必须单独编译或由库提供。
我试图在 .c 文件中使用我已经在 .h 文件中声明的变量,但出现编译错误:
undefined reference to
var
这是mach.c内容:
#include "machheader.h"
int
main( void )
{
var = 1;
printf("Variable %d\n", var);
}
而我的 machheader.h 只包含这个:
extern int var;
有什么想法吗?
在你的情况下,
extern int var;
是声明,不是定义。您需要在代码中定义 var
。
"undefined reference" 是 linker 错误而不是编译器错误。您需要 link 包含 var
实例化的目标代码,它必须单独编译或由库提供。