2014-07-22 5 views
1

저는 Linux에서 make를 사용하여 googletest를 빌드했습니다. 결과 파일은 libgtest.a libgtest_main.a입니다.우분투로 실행하는 googletest를 얻을 수 없습니다 (링커 ​​오류)

나는 내 응용 프로그램에서 파일을 포함 참조하고 (지정된 순서대로) 다음 LIB 종속성을 추가 :

내가 컴파일 할 때 나는 다음과 같은 두 가지 링커 오류를 얻을 그러나
-lgtest 
-lpthread 

:

more undefined references to `testing::internal::EqFailure(char const*, char const*, testing::internal::String const&, testing::internal::String const&, bool) 

undefined reference to `testing::internal::String::ShowCStringQuoted(char const*) 

googletest 소스에서 본 것으로부터, EqFailure 기능은 gtest.cc 내에 직접 구현됩니다. 왜 링커 에러가 발생하는지 이해하지 못합니다. googletest의 다른 정의도 분명히 발견 될 수 있습니다 (-lgtest를 제거하면 더 많은 링커 에러가 발생합니다).

무엇이 누락 되었습니까? 미리 감사드립니다.

+1

다른 버전의'Google C++ Testing Framework'을 시스템에 설치 했습니까? – Gluttton

+0

/usr/lib에 libs가 있었지만 googletest에서 프로젝트 내부의 외부 폴더에서 googletest를 연결하려고했습니다. 링커가 ldconfig -v |를 통해 libs를 알고 있는지 확인했습니다. grep gtest, 아무것도 찾을 수 없습니다. 그래도 EqFailure에서 링커 오류가 발생합니다. – mbue

+1

'나는 무엇이든 제거했습니다. '- ('/ usr/include/gtest')를 포함하면 어떨까요? 그것을 제거합니까? 또한 컴파일 옵션 (또는 스크립트 작성)과 프로젝트 구조를 공유 할 수 있습니까? – Gluttton

답변

2

실수로 자신의 gtest와 우분투와 함께 제공되는 것을 섞어 놓지 않았는지 확인하십시오.

cmake를 사용하여 빌드 할 때 cmake를 사용하고 cmake가/usr/include를 선택하면 내 자신의 사용자 정의 빌드 버전 (이는 내가 링크 된 것임)을 통해 동일한 오류가 발생합니다.

관련 문제