3
我试图使用从分离.cpp文件的全局变量我有一个init.h里文件:LNK2005:“已经定义的错误
//init.h
#ifndef init
#define init
int a = 3;
#endif
我有一个init.cpp文件: //init.cpp #include init.h
于是最后我的main.cpp文件是:
//main.cpp
#include "init.h"
int main(void)
{
while(1)
{
}
}
在此之后,我得到的错误:
1>init.obj : error LNK2005: "int a" ([email protected]@3HA) already defined in main.obj
1> ..deneme.exe : fatal error LNK1169: one or more multiply defined symbols found
为什么我的#infdef
控件不能解决这个问题?我也尝试使用#pragma once
,但我得到了同样的错误。我的代码有什么问题?
好吧,我忘了写包含init.h文件的init.cpp文件。当我使用extern时问题仍然存在。 – 2012-04-13 12:44:45
@volkansezer不可能是正确的。你确定你没有忘记从标题中删除= 3吗?你确定你在头文件中声明它为extern而不是实现文件吗? – 2012-04-13 13:02:57
是的,你是对的,我已经改变了你的建议和问题解决,非常感谢。再次感谢我从不同的源文件实现同样的全局变量对我来说非常重要。 – 2012-04-13 23:37:09