C++经验总结:函数多次被定义
很多时候编译c++源码经常会出现,函数被多次定义的情况
给出的提示会是:
obj/fk.o:在函数‘dscal_’中:
dgeco.f:(.text+0x0): `dscal_'被多次定义
obj/dgeco.o:dgeco.f:(.text+0x0):第一次在此定义
obj/fk.o:在函数‘dasum_’中:
dgeco.f:(.text+0x2b8): `dasum_'被多次定义
obj/dgeco.o:dgeco.f:(.text+0x2b8):第一次在此定义
obj/fk.o:在函数‘daxpy_’中:
dgeco.f:(.text+0x56f): `daxpy_'被多次定义
obj/dgeco.o:dgeco.f:(.text+0x56f):第一次在此定义
obj/fk.o:在函数‘ddot_’中:
dgeco.f:(.text+0x8c1): `ddot_'被多次定义
obj/dgeco.o:dgeco.f:(.text+0x8c1):第一次在此定义
出现的这个错误的原因如字面所说,编译的时候源码文件(.cpp/.c)文件被编译了两次
解决方法
检查编译文件列表,检查makefile文件,CmakeList.txt文件,.pro文件,将重复编译的源文件删除掉即可