2013-06-29 3 views
0

Когда я пытаюсь связать с библиотекой тестирования Google, я получаю следующие ошибки:Связывание ошибок при использовании тест Google

1> msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __thiscall std::basic_iostream<char,struct std::char_traits<char> >::~basic_iostream<char,struct std::char_traits<char> >(void)" ([email protected][email protected]@[email protected]@@[email protected]@[email protected]) already defined in gtest.lib(gtest.obj) 
1> msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: virtual __thiscall std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" ([email protected][email protected]@[email protected]@@[email protected]@[email protected]) already defined in gtest.lib(gtest.obj) 

ответ

0

Вы должны убедиться, что GTEST был построен, чтобы использовать один и тот же C Runtime Library (CRT) как ваш exe. Для получения полной информации см. MSDN documentation.

В настоящее время gtest предоставляет два .sln-файла; gtest-1.6.0\msvc\gtest.sln и gtest-1.6.0\msvc\gtest-md.sln. Первый использует флаги компилятора /MT и /MTd для версий Release и Debug соответственно (статическая версия CRT), а вторая использует и /MDd (DLL-версия CRT).

Вам необходимо использовать .sln, который соответствует вашим настройкам для этих флагов.

Смежные вопросы