是否有人成功地在Visual Studio 2010中成功建立了Gmock和Gtest?我已经尝试使用1.5.0版,但是我只会遇到难以理解的编译错误。

有帮助吗?

解决方案

我找到了这个 线 在Google小组中,有关在VS2010下构建Gmock-1.5.0时发现的问题。线程之后,我创建了一个对我有用的简短读数文件,因此是:

  • 从中下载Gmock 1.5.0 Google模拟.
  • 提取到机器上的库文件夹(例如C: libs gmock-1.5.0)。从现在开始,此文件夹将被称为“ gmock_root”。
  • 打开VS2010,并加载解决方案:gmock_root msvc gmock.sln。让VS从VS2008转换为VS2010。 重要的!请勿双击gmock_root msvc下的解决方案文件。 这导致了不良的转换。
  • 根据该来源执行以下更改 线:

    • 在项目gmock - >私人标头文件 - > gmock-internal-utils.h:

      • 第201、202行:评论“助手”功能:

      char Helper(To);

      static char (&Helper(...))[2]; // NOLINT

      • 行210-219:更换整个 #ifdef..#endif 章节:

      static const bool value = std::is_convertible<From, To>::value;

    • 在项目gmock_test->源文件中 - > 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");

      1. 构建解决方案。这应该导致4个警告,如下所述,可能还可以。

希望这可以帮助,

Boaz


VS2010从步骤5发出的编译器警告(请参阅最后的注释):

警告1警告C4996:'std :: _ copy_impl':带有可能不安全的参数的函数调用 - 此调用依赖呼叫者来检查传递的值是否正确。要禁用此警告,请使用-D_SCL_SECURE_NO_WARNINGS。请参阅有关如何使用Visual C ++'检查迭代器'C: Program Files(X86) Microsoft Visual Studio 10.0 VC Inclublate Xutility 2227 1的文档

警告2警告C4996:'std :: _ copy_impl':带有可能不安全的参数的函数调用 - 此调用依赖呼叫者来检查传递的值是否正确。要禁用此警告,请使用-D_SCL_SECURE_NO_WARNINGS。请参阅有关如何使用Visual C ++'检查迭代器'C: Program Files(X86) Microsoft Visual Studio 10.0 VC Inclublate Xutility 2227 1的文档

警告4警告C4413:'std :: tr1 :: _ cons _node <_car,_cdr> :: _ value':参考成员初始化为临时性,该临时性在constructor退出C: Program Files(x86) Microsoft Visual之后不会持续存在Studio 10.0 vc include tuple 137 1

警告3警告C4373:“测试:: gmock_generated_function_mockers_test :: mockfoo :: takeconst':virtual函数覆盖:: gmock_generated_generated_function_mockers_mockers_mockers_mockers_mockers_mockers_mockers_mockers_test :: foointerface :: foointerface :: foo takeConst'the Compiles ins compiles ins compant'ins compant'ins of compant'预选赛c: libs gmock-1.5.0 test gmock-enerated-enction-unction-mockers_test.cc 133 1

有关警告的评论:

  1. 警告1,2是关于Xutility的副本(),因此由于安全性而被贬低。由于模拟库不是生产版本的一部分,因此我可以。
  2. 警告4可以根据 线.
  3. 警告3:不确定,但一切似乎都很好。

其他提示

如果有人构建Gmock解决方案本身有问题,那是无法生成.lib文件的问题,这为我做到了(VS 2015):

https://groups.google.com/forum/# !! topic/googlemock/faeahedxpaq

gmock_config.props包含GTESTDIR的过时定义: <GTestDir>../../gtest</GTestDir>

<GTestDir>../../../googletest</GTestDir> 而且您应该克服错误。

至少是汇集了库,尽管如此,我仍然遇到了gmock_test错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top