已经在其他文件中定义, fatal error LNK1169: 找到一个或多个多重定义的符号

定义了一个头文件,包含一个bool变量,然后在另一个类的头文件中包含了此头文件,如下所示:A.h#ifndef_A_HEADER_#define_A_HEADER_boo... 定义了一个头文件,包含一个 bool 变量,然后在另一个 类的头文件中包含了此头文件 ,如下所示:
A.h
#ifndef _A_HEADER_
#define _A_HEADER_
bool bGolbal = true;
#endif // _A_HEADER_
============================
B.h
#pragma once
#include "a.h"
class B
{
}
=============
C.cpp
#include "a.h"
#include "b.h"

int main()
{
bGolbal = false;
return 0;
}

得到如上错误,请问如何解决,谢谢!
A.h
#ifndef _A_HEADER_
#define _A_HEADER_
extern bool bGolbal;
#endif // _A_HEADER_

B.cpp
extern bool bool bGolbal;

void set()
{
bGolbal = true;
}

c.cpp

bool bGolbal;

void main()
{
bGolbal = FALSE;
class B b;
b.set(bGolbal);

if(b)
{
printf("1111\n");
}
else
{
printf("00000000000\n");
}
}
展开
 我来答
arongustc
科技发烧友

推荐于2017-11-24 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5904万
展开全部
头文件不得包含变量定义和函数体,否则被包含一次,这些变量、函数就被重新定义,从而导致这个问题。把变量定义放到一个源文件中,然后在头文件中写成
extern bool bGolbal ;
更多追问追答
追问
bool bGolbal ;  我想定义为全局变量 class B 中的某些函数会访问这个变量,并改变它 的 值,
您说的,我试了一下,因该是我没有理解清楚,能否详细说明一下,谢谢 !
追答
我说的很清楚了,你怎么试的,遇到什么错误了
所雁亦
2012-11-09
知道答主
回答量:1
采纳率:0%
帮助的人:1559
展开全部
我把vs2008关了,再打开,帮刚才的东西复制上去就能调试成功了,但不知道为什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2011-12-23 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
class B的定义最后少了个分号,不知道是不是这个原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式