2015-01-18 1 views
1

약 일주일 전에 Windows 및 Visual Studio에서 Mac 및 Xcode로 옮겼습니다. Mac에서 내 프로젝트를 작업 할 수 있기를 원했기 때문에이 프로젝트를 이식하기로 결정했습니다.Xcode 6 - gtest 컴파일 및 사용 1.7

먼저 Mac에서 작동하려면 테스트가 필요하며 Google에서는이를 수행하는 방법에 대해 instructions을 제공합니다. 내 Xcode로 테스트를 빌드하면 출력 디렉토리에 세 파일이 표시됩니다. test.framework, libgtest_main .a 및 libgtest.a.

문서에 따르면 test.framework를 프로젝트에 연결해야한다고 나와 있습니다. 그래서 새로운 콘솔 앱 프로젝트를 만들어 test.framework 파일과 연결합니다. 아쉽게도 내 빌드가 약 70 개 이상의 문제로 실패합니다. librettist.a를 내 프로젝트에 연결하면 2 개의 문제만으로 실패합니다. 여기에 있습니다 :

Undefined symbols for architecture x86_64:
"testing::internal::EqFailure(char const*, char const*, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, bool)", referenced from: testing::AssertionResult testing::internal::CmpHelperEQ(char const*, char const*, int const&, int const&) in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

내가 알기로는 링커가 기호를 해석 할 수 없습니다. 프로젝트를 libgtest_main.a와 연결하면 아무것도 변경되지 않고이 오류가 계속 발생합니다. 어떻게 해결할 수 있습니까?

+1

동일한 문제가 있습니다. QtCreator의 Mac OSX에서 gtest를 사용하려고합니다. – robert

답변

0

동일한 문제가 있었는데 왜 이것이 생성되지 않는지 알 수 없었습니다. 그것은 32 비트 코드에서 잘 작동하므로 똑같이 당황 스럽습니다. 말했다

의 gtest 패키지의 샘플은 다음과 같은 의견이 있습니다

EXPECT_EQ(expected, actual) is the same as EXPECT_TRUE((expected) == (actual)) except that it will print both the expected value and the actual value when the assertion fails. This is very helpful for debugging. Therefore in this case EXPECT_EQ is preferred.

을하고 같은 ASSERT_EQ 및 ASSERT_TRUE 마찬가지입니다. 따라서 대체 할 경우 실패한 경우 일부 정보가 손실되지만 최소한 사용할 수는 있습니다.