已经在其他文件中定义, fatal error LNK1169: 找到一个或多个多重定义的符号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已经在其他文件中定义, fatal error LNK1169: 找到一个或多个多重定义的符号相关的知识,希望对你有一定的参考价值。
定义了一个头文件,包含一个 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");
extern bool bGolbal ;追问
bool bGolbal ; 我想定义为全局变量 class B 中的某些函数会访问这个变量,并改变它 的 值,
您说的,我试了一下,因该是我没有理解清楚,能否详细说明一下,谢谢 !
我说的很清楚了,你怎么试的,遇到什么错误了
追问变量的值没有改变
追答"你怎么试的"!我根本不知道你怎么改的,怎么知道你为什么变量值不变。列最新代码
参考技术A 我把vs2008关了,再打开,帮刚才的东西复制上去就能调试成功了,但不知道为什么 参考技术B class B的定义最后少了个分号,不知道是不是这个原因errors collectiions
c/c++中出现“undefined reference to”的解决
- 如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。
- 如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件。
- 如果提示未定义的函数是程序中的函数,还有一种很隐蔽的可能:检查改函数的代码的上下文是否有#ifdef或者#ifndef等预编译信息,这也很有可能导致相关代码没有被编译而出现“undefined reference to”提示。
以上是关于已经在其他文件中定义, fatal error LNK1169: 找到一个或多个多重定义的符号的主要内容,如果未能解决你的问题,请参考以下文章
vc2008中 fatal error LNK1169: 找到一个或多个多重定义的符号
fatal error LNK1169:找到一个或多个重定义的符号
Fatal error: Call to undefined function ThinkC() in /var/www/html/ceshi.hzheee.com/think/ThinkPHP/L(
全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号