首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接器LNK2005误差

链接器LNK2005误差
EN

Stack Overflow用户
提问于 2014-12-30 04:21:58
回答 1查看 39关注 0票数 0

我在这里搜索了很多次,发现这个问题很多次了,但是作者通常没有提供一个代码示例,我今天遇到了这个问题,我不知道如何解决它。

其中一个错误列出了bool Init(?@@A_NA) already defined in Client.obj。下面是我为Client.cpp、Main.cpp和Main.h编写的部分代码。

Client.cpp

代码语言:javascript
复制
#include "stdafx.h"
#include "Main.h"
// the rest of the code doesn't have anything to do with this error..

Main.h

代码语言:javascript
复制
#include "stdafx.h"
bool Init;
// the rest of the code doesn't have anything to do with this error..

Main.cpp

代码语言:javascript
复制
#include "stdafx.h"
#include "Main.h"

int main()
{
    Init = false;
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-30 04:30:08

#include "Main.h"中,您已经定义了bool Init;,所以每次包含Main.h时,都会重新定义Init。如果Init是静态的,

代码语言:javascript
复制
static bool Init;

在这里,Init将有页面级别的作用域,您的代码应该可以正常工作。

或者更好的是,你让Init退出Math.h

代码语言:javascript
复制
extern bool Init;

然后在.cpp文件中定义它,这样您将有多个声明,但只有一个定义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27699548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档