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

Posted NONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fatal error LNK1169:找到一个或多个重定义的符号相关的知识,希望对你有一定的参考价值。

这个算是个比较基础的问题,由于我不是C程序员,本行java,临时拉来做的,所以有些坑还得自己走出来。

 

这个问题是由于,全局变量在a.h中定义,在两个源文件a.cpp和b.cpp中引用,之后被编译器认为是重定义。

 

解决办法:

      全局变量要在源文件中声明和定义。a.cpp。

      至于a.cpp中引用的头文件,a.h,需要在定义时加extern。

      b.cpp引用a.h即可。

 

      extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。另外,extern也可用来进行链接指定。

 

      

以上是关于fatal error LNK1169:找到一个或多个重定义的符号的主要内容,如果未能解决你的问题,请参考以下文章

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

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

全局变量重复定义,fatal error LNK1169: 找到一个或多个多重定义的符号

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

fatal error LNK1169: one or more multiply defined symbols found

error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)