[英]Error with linker for a extern variable declared in a header file
我有一个头文件ah,它包含在2个.c文件ac和bc中
啊
#ifndef A_H_INCLUDE
#define A_H_INCLUDE
extern int g;
void chk(int f);
#endif
交流电
# include <stdio.h>
# include "a.h"
void chk(int f)
{
if(g==1) printf("\n CORRECT\n");
else printf("\n INcorrect::%d: \n",f);
}
公元前
# include <stdio.h>
# include "a.h"
int main()
{
int g;
printf("\n ENTER::");
scanf("%d",&g);
chk(56);
return 0;
}
编译代码给我错误
gcc a.c b.c a.h -o j
/tmp/ccEerIPj.o: In function `chk':
a.c:(.text+0x7): undefined reference to `g'
collect2: ld returned 1 exit status
我已经检查了头文件中的变量声明 ,我想我正在做同样的事情。
任何建议或指向代码问题的指针将不胜感激。
非常感谢
加int g;
ac
文件的全局范围以提供变量的定义。
(如果您想知道, main()
函数内部的局部变量没有链接,因为它是块范围内的自动变量。与您的问题无关。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.