Странная ошибка с функциями Test_F и EXPECT_EQ GTEST

#c #linux #googletest

#c #linux #googletest

Вопрос:

Я пытаюсь реализовать чрезвычайно простой пример GoogleTest в VSCode в Linux, и я получаю некоторые странные ошибки, которые я не могу найти в Интернете. Когда я пытаюсь фактически определить тесты, которые будут выполняться — «‘

 #include <limits.h>
#include "gtest/gtest.h"
#include </home/tester/src/Multiply.h>
    class MultiplyTest : public ::testing::Test {
     protected:
      virtual void SetUp() {
      } 
      virtual void TearDown() {
      }
    };
    TEST_F(MultiplyTest,twoValues){
        const int x = 4;
        const int y = 5;
        Multiply multiply;
        EXPECT_EQ(20,multiply.twoValues(x,y));
        EXPECT_EQ(6,multiply.twoValues(2,3));
    }
 

«‘
Ошибки выдаются в частях TEST_F и EXPECT_EQ, в частности, говорится, что TEST_F — это «это объявление не имеет класса хранилища или спецификатора типа», а EXPECT_EQ — это «класс «testing::internal::EqHelper» не имеет члена «Сравнить». »
Буду признателен за любую помощь.

Вот мое умножение.файл заголовка h:

 #ifndef _MULTIPLY_HPP_
#define _MULTIPLY_HPP_
class Multiply{
public:
    static int twoValues(const int x, const int y);  
};
#endif
 

и мой makefile:

 CXX = gcc
CXXFLAGS = -g -L/opt/gtest/lib -lgtest -lgtest_main -lpthread
INCS = -I./ -I../../src -I/opt/gtest/include
OBJS = ../../src/Addition.o Addition_Test.o ../../src/Multiply.o Multiply_Test.o

testAll: $(OBJS)
    $(CXX) $(CXXFLAGS) $(INCS) -o testAll  Main_TestAll.cpp $(OBJS)

.cpp.o:
    $(CXX) $(CXXFLAGS) -c

lt; -o $@ $(INCS)

clean:
rm testAll *.o testAll.xml

В настоящее время я запускаю gcc 7.3.1, если это поможет.

Комментарии:

1. не удается воспроизвести

2. Вы забыли закрыть a namespace в Multiply.h ?

3. Может быть, вы хотите CXX = g