首页 文章

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

提问于
浏览
4

我正在尝试将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 include文件添加到我的测试文件中就会得到这些编译错误 . 以前有人见过这种事吗?

1 回答

  • 0
    • 你是否在测试项目的主要功能中使用InitGoogleMock(&__ argc,__ argv)初始化了谷歌模拟?

    • 您应该只在测试文件中包含"gmock/gmock.h"(以及调用InitGoogleMock的地方) - 不需要包含gtest.h .

    • 您是否已将googletest库更新为googlemock . (https://github.com/google/googletest

    如果以上所有事情都属实,它应该有效 .

相关问题