【发布时间】:2013-12-03 16:25:29
【问题描述】:
我在让程序范围的全局变量和函数正常工作时遇到了很大的麻烦。我尝试在 .c 文件中定义我的函数/变量,然后在标头中声明它们(在变量的情况下使用 extern 关键字),但是 VC 和 GCC 都给了我未解决的符号/未定义的引用错误。例如:
glob.c
#include "glob.h"
int i = 5;
char get_letter()
{
return 'A';
}
glob.h
#ifndef GLOB_H
#define GLOB_H
extern int i;
char get_letter();
#endif
main.c
#include <stdio.h>
#include "glob.h"
int main()
{
printf("%u\t%c\n", i, get_letter());
}
这个问题问起来有点多余,但在我看来,我已经尝试了现有资源中提供的解决方案,但仍然出现错误。我应该如何一劳永逸地在 C 中定义全局变量?
【问题讨论】:
-
exact 错误信息是什么?
-
您需要编译 main.c 和 glob.c,然后将它们链接在一起。如果您仅将 main 编译为可执行文件,则它不会有该
ivar 的源代码,因为您从未将它与 glob.o 链接起来
标签: c