记录一下报错及解决方法:
问题产生:
写了一个.h文件,.h里写了函数及实现.在另一个文件中引用该.h文件"include xxx.h".
编译过程中遇到了如下报错:
LNK2005 "..........................................."已经在xx.lib(xxxxx.obj)中定义
LNK1169 找到一个或多个多重定义的符号
解决方法:
搜索了很多帖子,确定不是头文件引用混乱等多次引用问题.最终是在.h文件中的每一个函数前加上static解决.原因可能是:引用.h文件后,.h文件里的函数默认为全局函数,加上static关键字后声明函数为局部函数,作用域只限定在.h文件中.