2016-12-21 1 views
2

Windows10에서 Gtest 및 Gmock을 사용하는 데 문제가 있습니다. 나는 보통 리눅스에서 일하지만 윈도우로 전환하고 문제를 겪고 싶다.Windows에서 Gtest 및 Gmock 사용

나는 Gmock과 Gtest를 Cmake와 Visual Studio의 문서에 따라 만들 수 있었다. 아파치 디렉토리에 gmock.lib과 gtest.lib 파일이있다. 하지만 테스트 프로그램에 연결하려면 수십 개의 "정의되지 않은 참조"유형의 오류를 볼 수 있습니다.

내가 사용하는 명령은 다음과 같습니다

g++ "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\Debug" "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\gtest\\Debug" -o HelloWorld "src\\counter.o" "src\\counter_test.o" -lgmock -lgtest 

오류는 예를 들면 다음과 같습니다

C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::Message::Message()' C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)' 

내가이에서 검색을 시도하고 어쩌면 내가 공유 라이브러리를 구축한다는 것을 발견했다. 나는 적절한 옵션으로 gmock과 gtest를 재구성했다. 이제는 dll 파일도 갖지만 여전히 같은 오류가 발생한다.

내가 뭘 잘못하고 있니?

linux의 라이브러리 이름이 Windows의 이름과 다르게 지정 될 수 있습니까? (libgmock.a vs gmock.lib) 그 때문에 g ++ 명령에서 뭔가를 변경해야합니까?

내가 붙여 넣은 경로가 좋고 파일이 있습니다 (그렇지 않으면 오류가 달라집니다).

무엇이 여기에 있습니까?

+0

좋아, 문제를 해결했습니다. Visual Studio로 라이브러리를 컴파일 한 다음 G ++와 함께 사용할 수 없다는 것이 밝혀졌습니다. 다른 접근 방식으로 전환해야했고이 동영상은 매우 도움이되었습니다. https://www.youtube.com/watch?v=y9sGAF1k63o&list=PL0SUKxlBaq1COi52nuq2lPf6AbMRrn2LI&index=7 – YotKay

답변

1

좋아, 문제를 해결했습니다. Visual Studio로 라이브러리를 컴파일 한 다음 G ++와 함께 사용할 수 없다는 것이 밝혀졌습니다. https://www.youtube.com/watch?v=y9sGAF1k63o&list=PL0SUKxlBaq1COi52nuq2lPf6AbMRrn2LI&index=7

이 비디오는 gtest를 Eclipse에서는 사용하지만 라이브러리는 사용하지 않고 gtest 스크립트의 fused cpp 및 h 파일을 사용하는 방법을 가르칩니다. 그것은 잘 작동합니다. 내가 가지고있는 유일한 문제는 파이썬 3.5 버전을 설치했고 '퓨즈'스크립트에 사용 된 파이썬 2.7과 일부 경우에 하위 호환이되지 않는다는 것입니다. 그러나이 몇 가지 사례를 신속하게 수정하여 작동하게했습니다.

1

정답 이외에 : 외부 라이브러리 (gmock 또는 gtest 등)로 작업하려면 라이브러리와 프로그램을 동일한 컴파일러로 컴파일해야합니다. 이것이 프로그램이 정의되지 않은 참조로 오류를 던지는 이유입니다. Visual Studio에는 MSVC 컴파일러가 있습니다. VS로 작업하려면 VS로 프로그램을 컴파일하십시오. 그리고 그게 전부가 아니기 때문에 동일한 컴파일러와 같은 설정 (예 : 디버그 모드에서 컴파일)을 사용해야합니다.

난 그냥 대답에 추가하고 싶습니다. 당신 때문에 쓴 :

그것은 내가 비주얼 스튜디오

을 가진 라이브러리를 컴파일 할 수 없습니다 그 잘못, 당신은 VS와 라이브러리를 컴파일 할 수 있지만,이 프로그램에 대해 그들을 연결 cant't 밝혀졌다 . 아마도 그것은 이미 분명하다. 그런 다음 나의 대답을 변명해라.