0
我正在使用gcc编译一些.c文件。比方说,下面的话:链接错误:全局变量的多重定义
C文件是:
main.c
tree.c
头文件是:
tree.h
我已经宣布了一些变量,如果看不到在tree.h
。比方说,以下是值的全局varible分配:
int fanout = 5;
早些时候,我一直保持main()
功能tree.c
文件。链接没有问题。但是现在我想把主要功能分开。我刚刚在新创建的.c
文件中移动了主要功能。现在的问题是,它 显示链接错误:
main.o error: fanout declared first time
tree.o error: multiple declaration of fanout.
请让我知道我可以摆脱这个问题的。
在此先感谢。
顺便说一句,我得到以下警告:**警告:“扇出”初始化并宣布“的extern” **你有任何想法,为什么会这样? – thetna
@thetna:你可能想检查[this](http://stackoverflow.com/questions/8054847/declaration-versus-definition-in-c/8054893#8054893)我的答案。你可能也只是'int fanout = 5'在树中。不包括前面的'extern',虽然这个警告只是地道警告,但是你可以摆脱这个警告。上面的答案中的用法是安全的,符合标准,链接的答案详细解释了这一点。 –