![](/img/trans.png)
[英]Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 compiler
[英]Is MSVC 2010 a C++11-standard-compliant compiler
我正要使用谷歌测试为单元测试我们的MSVC 2010
以项目为基础,但README.md
的GTEST v1.10.x分支的文件(目前最新的)中提到的建立一个C ++ 11兼容的标准编译器要求部分。
那么MSVC 2010
是符合 C++11 标准的编译器,还是我应该使用gtest v1.7.0 ,它在Windows 要求部分提到了Microsoft Visual C++ 7.1 或更新版本?
2017 年左右,我们在使用 MSVC10 和 MSVC11 编译器构建的应用程序中遇到了太多随机崩溃。 经过分析,我们确定标准 C++ 库调用是导致崩溃的原因,尽管我们没有做错,并且代码编写得很完美。
经过一番努力调试和研究,我们发现微软的 C++11 实现是非标准和错误的,并导致了不必要的崩溃。 对我们来说,即使是对 condition_variable 的基本 wait_for 调用也会随机崩溃。 这里有一份这样的 MSDN 参考资料供您参考。
我们就此事联系了微软,他们的答复是,
“很抱歉,没有针对此错误的修补程序可用。我强烈建议升级到最新发布的 VS 版本(当前为 VS 2017 15.4),因为多年来我们已经修复了 STL 多线程机制中的许多错误。”
我们不得不将所有项目转移到 VS2017(当时最新的项目)以摆脱崩溃。 我也不建议你使用那些有问题的编译器。
最好坚持使用较旧的编译器(VC8/VC9)或迁移到最新的编译器(VS2019)。 迁移到 VS2017 后我们没有问题。
不,MSVC 2010 不完全符合 C++11。 但是,它确实提供了许多 C++11 功能。 您可以尝试用它编译最新的 google_test,或者只使用旧版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.