编译时未定义的引用

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 实例化的目标代码,它必须单独编译或由库提供。