fatal error LNK1169: 找到一个或多个多重定义的符号

来源:互联网 发布:mysql最新版本是多少 编辑:程序博客网 时间:2024/05/27 00:28


本文转载自maniac3d《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文件里有函数实现时


VS2005编译器报此错误,
解决方法 
1.在.h里的函数声明前加 inline
2.在项目->属性->链接器->命令行->附加选项中加   /force  

0 0
原创粉丝点击