有沒有人在Visual Studio 2010中成功構建gmock和gtest?我已經嘗試過版本1.5.0,但我只會得到不可理解的編譯錯誤。Visual Studio 2010中的GoogleMock和GoogleTest
回答
我發現這個thread在谷歌組關於在VS2010下構建gmock-1.5.0時發現的問題。從Google Mock
- 下載gmock 1.5.0:繼線程,我創建了一個簡短的自述文件,它爲我工作,所以在這兒呢。
- 提取到機器上的庫文件夾(例如C:\ Libs \ gmock-1.5.0)。從現在開始,這個文件夾將被認爲是'GMOCK_ROOT'。
- 打開VS2010,加載解決方案:GMOCK_ROOT \ msvc \ gmock.sln。讓VS將其從VS2008轉換爲VS2010。 重要!不要在GMOCK_ROOT \ msvc下雙擊解決方案文件。這導致轉換錯誤。
根據thread執行以下更改來源:
- 在項目gmock
- >私有頭文件 - > gmock內部-utils.h:
- 線201 ,202:註釋掉 '幫手' 的功能:
條char Helper(To);
static char (&Helper(...))[2]; // NOLINT
- 線210-219:與更換整個
#ifdef..#endif
部分:項目gmock_test
static const bool value = std::is_convertible<From, To>::value;
- >源文件 - > gmock-printers_test.cc,第848行: 執行NULL參數的顯式轉換爲
void*
,否則VS會自動將其視爲null int。將得到的線應該是這樣的:t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, static_cast<void*>(NULL), "10");
- 生成解決方案。這應該導致4個警告,如下所述,這些警告(可能)是確定的。
- 在項目gmock
希望這有助於
波阿斯
步驟5 VS2010的編譯器警告(見末備註):
關於警告警告1警告C4996: 'std :: _ Copy_impl':與 函數調用可能不安全的參數 - 此 調用依賴於調用者檢查 傳遞的值是否正確。若要 禁用此警告,請使用 -D_SCL_SECURE_NO_WARNINGS。請參閱有關如何使用 '檢查的迭代器' C的Visual C++ 文檔:\ Program Files文件 (x86)的\微軟的Visual Studio 10.0 \ VC \包括\ xutility 2227 1
警告2警告C4996: 「的std :: _Copy_impl':與 函數調用可能不安全的參數 - 此 調用依賴於調用者檢查 傳遞的值是正確的。若要 禁用此警告,請使用 -D_SCL_SECURE_NO_WARNINGS。請參閱有關如何使用 '檢查的迭代器' C的Visual C++ 文檔:\ Program Files文件 (x86)的\微軟的Visual Studio 10.0 \ VC \包括\ xutility 2227 1
警告4警告C4413: 「的std :: TR1 :: _ Cons_node < _Car,_Cdr> :: _值」 :參考成員初始化爲 暫時不 構造後堅持退出C:\ Program Files文件 (x86)的\微軟的Visual Studio 10.0 \ VC \ include \ tuple 137 1
警告3警告C4373: 'te刺:: gmock_generated_function_mockers_test :: MockFoo :: TakesConst': 虛函數覆蓋 '測試:: gmock_generated_function_mockers_test :: FooInterface :: TakesConst', 以前的編譯器版本並 沒有覆蓋時的參數以const只 差異/揮發性 限定符C:\利布斯\ gmock-1.5.0 \測試\ gmock-generated-function-mockers_test.cc 133 1
備註:
- 警告1,2-約爲複製()在xutility被棄用d你要安全。由於模擬庫不是產品發佈的一部分,這對我來說可以。
- 根據thread,警告4無誤。
- 警告3:不確定,但似乎一切正常。
如果任何人有建設gmock解決方案本身的問題,那是不能生成的。LIB文件,這爲我做(VS 2015):
https://groups.google.com/forum/#!topic/googlemock/FaEAHedxpAQ
gmock_config.props包含GTestDir的過時的定義:
<GTestDir>../../gtest</GTestDir>
與
<GTestDir>../../../googletest</GTestDir>
替換它,你 應該讓過去你的錯誤。
至少libs被編譯,儘管在那裏提出了更改,但我仍然得到了gmock_test錯誤。
- 1. GoogleMock問題與Visual Studio 2010和MSTest(C++/CLI)
- 2. 的Visual Studio 2003和Visual Studio 2010
- 3. Visual Studio 2010和IIS
- 4. Visual Studio 2008和2010
- 5. PyQT和Visual Studio 2010
- 6. NLog和Visual Studio 2010
- 7. QT和Visual Studio 2010
- 8. Visual Studio 2010和aspnet_sql.exe?
- 9. Visual Studio 2010和Subversion
- 10. Opencv和Visual Studio 2010
- 11. g3d和visual studio 2010?
- 12. 調試和Visual Studio 2010中
- 13. Allegro5和MS Visual Studio 2010中
- 14. Visual Studio 2010的Visual Studio 2010主題?
- 15. 如何在Visual Studio 2010中的C++ googletest項目中設置代碼覆蓋率
- 16. Visual Studio 2010和Arduino的UNO
- 17. 的Visual Studio 2010和MinGW
- 18. VSTSDK和Visual Studio Express的2010
- 19. 的Visual Studio 2010和SQL Server
- 20. Visual Studio 2010的AcceptButton和CancelButton
- 21. jQuery和Visual Studio 2010的
- 22. 的Visual Studio 2010,Office 2007的和2010 Interopability
- 23. 爲Visual Studio 2010中
- 24. Visual Studio 2010中 - RemovePreviousVersions
- 25. 在Visual Studio 2010中
- 26. 在Visual Studio 2010中安裝Visual Studio 2013
- 27. WTL 8.1和Visual Studio 2010 Premium
- 28. Visual Studio 2010和.NET Framework 1.1.4.322
- 29. Visual Studio 2010和斷點
- 30. interbase 7.5和visual studio 2010
沒有看到內容的錯誤,沒有多少人可以幫助你。 – VladLosev 2010-07-18 18:23:20
您是否下載並使用CMake生成解決方案文件,然後編譯這些文件?這對我來說完美無瑕。 – Jan 2010-10-27 10:27:42
谷歌測試1.6在Visual Studio 2010中完美地工作。也許試試1.6? – User 2011-06-28 20:13:54