1
개별 파일 (지침!)로 작성된 fibonacci 시퀀스에 대한 코드를 테스트하고 싶지만 컴파일 방법을 모르겠습니다.여러 파일을 googletesting
fib.h :
#ifndef FIB_H
#define FIB_H
#include <gtest/gtest.h>
class fib
{
public:
int fibRec(int n);
};
TEST(testFib, firstTest)
{
fib fibnumber;
EXPECT_EQ(55, fibnumber.fibRec(10));
EXPECT_EQ(13, fibnumber.fibRec(8));
EXPECT_EQ(89, fibnumber.fibRec(11));
EXPECT_EQ(3, fibnumber.fibRec(5));
}
#endif // FIB_H
fib.cpp :
#include "fib.h"
int fib::fibRec(int n)
{
if(n <= 0) return 0;
if(n == 1) return 1;
else return(fibRec(n-1)+fibRec(n-2));
}
MAIN.CPP :
#include <limits>
#include "fib.h"
int main(int argc, char *argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
내 libgtest.a
이 /home/me/gtest
에 있으며 include
이 /home/me/gtest/gtest-1.7.0/include
입니다. 나는 컴파일하고 다음과 같이 ++ g와 단말기에서 테스트를 실행하려하지만, 내가 뭘 잘못
$ g++ -c fib.cpp
$ g++ -c fib.h
$ g++ -c main.cpp
$ g++ -I/home/me/gtest/gtest-1.7.0/include -pthread main.cpp libgtest.a -o test_exe
작동하지 않았거나 오히려 내가 무엇을 추가해야합니까?
는 편집 :
나는 $ g++ -I/home/me/gtest/gtest-1.7.0/include -pthread main.cpp fib.cpp libgtest.a -o test_exe
을 시도하지만 오류
/tmp/ccTTfKeF.o:(.bss+0x0): multiple definition of `testFib_firstTest_Test::test_info_'
/tmp/ccq6EExi.o:(.bss+0x0): first defined here
/tmp/ccTTfKeF.o: In function `testFib_firstTest_Test::TestBody()':
fib.cpp:(.text+0x0): multiple definition of `testFib_firstTest_Test::TestBody()'
/tmp/ccq6EExi.o:main.cpp:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
당신은 프로그램을 컴파일하고 실행하기 위해서 개체 파일을 링크 할 필요가
오류가 발생했습니다. 원래 게시물을 편집했습니다. – TheGuyWithStreetCred
@ user2202368 이전에 수정하지 못했습니다. –
고마워, 난 그냥 테스트 배우고있어, 지금은 작동합니다 :) – TheGuyWithStreetCred