编译时未定义的引用

时间:2015-11-28 12:58:40

标签: c extern undefined-reference variable-declaration

我正在尝试使用我已经在.c文件上的.h文件中声明的变量,我给了我一个编译错误:

  

var

的未定义引用

这是mach.c内容:

#include "machheader.h"

int 
main( void )
{
    var = 1;
    printf("Variable %d\n", var);
}

我的machheader.h只包含这个:

extern int var;

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

在你的情况下,

libvendor.a

声明,而不是定义。您需要在代码中定义 extern int var;

答案 1 :(得分:1)

“undefined reference”是链接器错误而不是编译器错误。您需要链接包含var实例化的对象代码,该实例化必须单独编译或由库提供。