#include "gmock\gmock.h", сообщающее об ошибке времени компиляции

Я пытаюсь смоделировать сторонний вызов API в моем модульном тесте cpp. Для этого я установил gmock 1.7.0 в свой проект, используя менеджер пакетов Nuget в VS2013. Он добавил gmock-all.cc и gtest-all.cc в моем тестовом проекте. Как только я выполнил, все в порядке. Как только я добавляю #include "gmock\gmock.h" в моем тестовом примере cppunit, это дает мне следующую ошибку -

2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(893): ошибка C2065: 'lhs': необъявленный идентификатор 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(893): ошибка C2988: неузнаваемое объявление / определение шаблона 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(893): ошибка C2059: синтаксическая ошибка: 'const' 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(901): ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '{' 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(901): ошибка C2447: '{': отсутствует заголовок функции (формальный список старого стиля?) 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(933): ошибка C2065: 'from': необъявленный идентификатор 2> c: \ tfs2013 \ main \ source \ packages \ gmock.1.7.0 \ lib \ native \ include \ gtest \ internal \ gtest-internal.h (933): ошибка C2065: 'L': необъявленный идентификатор 2> c: \ tfs2013 \ main \ source \ packages \ gmock.1.7.0 \ lib \ native \ include \ gtest \ internal \ gtest-internal.h (933): ошибка C2065: 'to': undeclared идентификатор 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(935): ошибка C2182: 'CopyArray': недопустимое использование типа 'void' 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(935): ошибка C2433: 'CopyArray': 'inline'не разрешено в объявлениях данных 2> c: \ tfs2013 \ main \ source \ packages \ gmock.1.7.0 \ lib \ n ative \ include \ gtest \ internal \ gtest-internal.h (935): ошибка C2365: 'testing::internal::CopyArray': переопределение; предыдущее определение было 'function' 2>c:\tfs2013\main\source\packages\gmock.1.7.0\lib\native\include\gtest\internal\gtest-internal.h(935): ошибка C2998: 'int testing::internal::CopyArray': не может быть определением шаблона

Можете ли вы помочь мне избавиться от этого?

1 ответ

Я использую cpprest вместе с gmock. У обоих есть конфликт, из-за которого он дает эти ошибки. Чтобы избавиться от этого, нам нужно включить директиву препроцессора _TURN_OFF_PLATFORM_STRING.

для получения более подробной информации вы можете следить за обсуждением в выпуске с CPP Rest и gmock

Другие вопросы по тегам