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

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

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

解决办法:

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

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

      b.cpp引用a.h即可。

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

      

原文地址:https://www.cnblogs.com/rixiang/p/6950570.html