首页 > 代码库 > fatal error LNK1169: 找到一个或多个多重定义的符号
fatal error LNK1169: 找到一个或多个多重定义的符号
申明全局变量,全局函数一定要在cpp中申明,其他类引用该全局变量就include该cpp的h文件,然后extern一下就好了。否则容易出现该重复定义错误。
这个"容易"是如何解释的呢?
例如 A.h 中如果申明了全局变量
int Global;
在 B.h 中
include "A.h" ..... extern int Global; ......
则你 include A.h 相当于把 A.h 中全局变量的申明也 include 进来了,编译器就会认为是重复定义。
所以全局变量和函数申明一定要在cpp中 ,当 .h 文件里有函数实现时,VS编译器报此错误。
解决方法
1.在.h里的函数声明前加 inline
2.在项目->属性->链接器->命令行->附加选项中加 /force
以上装载自 David_Hu。
我也遇到这个错误,不过整个工程包含的文件太多,不好分析包含关系,但问题应该差不多的。
我的解决办法是:
项目 –> 属性 –> 链接器 –> 命令行 –> 附加选项中 加 /force
就解决了 error,不过出现了一堆 warning 。
fatal error LNK1169: 找到一个或多个多重定义的符号
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。