#include“gmock / gmock.h”时编译错误

时间:2012-05-24 16:13:49

标签: c++ googlemock

我正在尝试将googlemock集成到我的测试中。我已经在googletest上成功构建并运行了测试,现在我正在尝试逐步将gmock功能添加到测试中,但是我遇到了一个我完全不理解的编译错误。

我不是试图使用或定义模拟类,也不是使用gmock.h提供的任何东西。在我(之前工作的)tests.cpp文件的顶部,我只输入

#include "gmock/gmock.h"

我收到了编译错误:

gmock / gmock-matchers.h(2497):错误C2059:语法错误:'sizeof'

gmock / gmock-matchers.h(2505):参见正在编译的类模板实例化'testing :: internal :: ElementsAreMatcherImpl'的引用

gmock / gmock-matchers.h(2497):错误C2059:语法错误:')'

gmock / gmock-matchers.h(2497):错误C2143:语法错误:缺少')'在'{'

之前

gmock / gmock-matchers.h(2497):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int

gmock / gmock-matchers.h(2499):警告C4183:'消息':缺少返回类型;假设是一个返回'int'的成员函数

我正在使用Windows 7上的nmake / vc ++编译它,我无法理解为什么只是将核心gmock包含文件添加到我的测试文件中就会出现这些编译错误。以前有人见过这种事吗?

1 个答案:

答案 0 :(得分:1)

  1. 你是否在测试项目的主要功能中使用InitGoogleMock(& __ argc,__ argv)初始化了谷歌模拟?
  2. 您应该只在测试文件中包含“gmock / gmock.h”(以及您调用InitGoogleMock的地方) - 不需要包含gtest.h。
  3. 您是否已将googletest库更新为googlemock。 (https://github.com/google/googletest
  4. 如果以上所有事情都属实,它应该有效。