我正在尝试使用我已经在.c文件上的.h文件中声明的变量,我给了我一个编译错误:
对
的未定义引用var
这是mach.c内容:
#include "machheader.h"
int
main( void )
{
var = 1;
printf("Variable %d\n", var);
}
我的machheader.h只包含这个:
extern int var;
有什么想法吗?
答案 0 :(得分:5)
在你的情况下,
libvendor.a
是声明,而不是定义。您需要在代码中定义 extern int var;
。
答案 1 :(得分:1)
“undefined reference”是链接器错误而不是编译器错误。您需要链接包含var
实例化的对象代码,该实例化必须单独编译或由库提供。