我遇到一个非常困惑的错误。
1>Base_d.lib(Base_d.dll) : error LNK2005: "public: __cdecl std::vector<int,class std::allocator<int> >::vector<int,class std::allocator<int> >(class std::vector<int,class std::allocator<int> > const &)" (??0?$vector@HV?$allocator@H@std@@@std@@QEAA@AEBV01@@Z) already been defined in ParametersManager.obj
1>Base_d.lib(Base_d.dll) : error LNK2005: "public: __cdecl std::vector<int,class std::allocator<int> >::~vector<int,class std::allocator<int> >(void)" (??1?$vector@HV?$allocator@H@std@@@std@@QEAA@XZ) already been defined in ParametersManager.obj
库“ Base_d.lib”是基本的组件库。 我正在编写另一个链接到“ Base_d.lib”的库,新库包含“ ParametersManager”类。班级
“ ParametersManager”具有成员“ std :: vector
_mem”
我在使用Visual Studio 2015的Windows 10上构建了该项目,尝试了许多方法并进行了多次重建,然后我发现
(1)如果我注释了“ _mem”,则错误消失了。
(2)如果我将“ std :: vector
_mem”更改为“ std :: vector _mem”或任何其他类型,则错误将消失 (3)使用linux构建,错误消失了(但是这项工作必须在Windows上使用)
我遭受了好几天折磨,有人可以帮助我吗?