Ошибка LNK2005 при связывании библиотек с vc ++ - PullRequest
0 голосов
/ 11 сентября 2018

Я получил очень запутанную ошибку.

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»

Я строю этот проект на Windows 10 с Visual Studio 2015, пробовал многопути и перестроить много раз, и я нашел

(1), если я прокомментировал "_mem", ошибка disapperd.

(2) если я заменим "std :: vector _mem" на "std :: vector _mem" или любой другой тип, ошибка исчезнет

(3) сборка с linux, ошибка исчезла (но эту работу нужно использовать для windows)

Меня пытали в течение нескольких дней, кто-нибудь может мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...