2013-06-29 95 views
0

當我試圖對谷歌測試庫鏈接鏈接錯誤,我收到以下錯誤:使用谷歌測試

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運行時庫(CRT)作爲你的EXE。有關完整信息,請參見MSDN documentation

當前gtest提供了兩個.sln文件; gtest-1.6.0\msvc\gtest.slngtest-1.6.0\msvc\gtest-md.sln。第一個使用編譯器標誌/MT/MTd分別用於Release和Debug版本(CRT的靜態版本),而第二個使用/MD/MDd(CRT的DLL版本)。

您需要使用與您的設置對應的.sln這些標誌。