我本来打算使用google test对基于MSVC 2010
的项目进行单元测试,但是 gtest v1.10.x 分支的README.md
文件(当前最新消息)在 Build Requirements 部分中提到了一个符合C ++ 11标准的编译器。
MSVC 2010
是C ++ 11标准兼容的编译器,还是我应该使用提及 Microsoft Visual C ++ 7.1或更高版本的 gtest v1.7.0 Windows要求部分中的em>?
答案 0 :(得分:1)
否,MSVC 2010不完全符合C ++ 11。但是,它确实提供了许多C ++ 11功能。您可以尝试使用它编译最新的google_test,也可以只使用旧版本。
答案 1 :(得分:1)
在2017年左右,使用MSVC10和MSVC11编译器构建的应用程序遇到了太多的随机崩溃。经过分析,我们确定标准的C ++库调用是崩溃的原因,尽管我们没有做错任何事情,并且代码编写正确。
经过一些艰苦的调试和研究,我们发现 Microsoft的C ++ 11实现是非标准且有错误的,并导致了不必要的崩溃。对于我们来说,甚至对condition_variable的基本wait_for调用都具有随机崩溃。 Here是为您提供的一种这样的MSDN参考。
我们对此进行了联系,他们的答复是,
”“很抱歉,没有此错误的修补程序。我强烈 建议升级到最新发布的VS版本(当前为VS 2017 15.4),因为我们修复了STL多线程中的许多错误 多年来的机械。”
我们不得不将所有项目移至VS2017(当时的最新项目)来摆脱崩溃。我也不建议您使用那些有问题的编译器。
最好使用较旧的编译器(VC8 / VC9)或升级到最新的编译器(VS2019)。迁移到VS2017后,我们没有任何问题。