MacでGoogleTestを使用しようとしたらリンクエラー

C++用のテストフレームワークとして、GoogleTestを使おうと思い、 GoogleTestのサイト(下記)の内容を信じ、SVNから最新版を落として、cmakeからmakeを実行。 https://code.google.com/p/googletest/

無事makeは通った。 出来たライブラリを実行テストモジュールにリンクしたところ、下記エラーが発生。。。

ld: warning: could not create compact unwind for __ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPN7testing12TestPropertyESt6vectorIS3_SaIS3_EEEENS0_5__ops10_Iter_predINS2_8internal17TestPropertyKeyIsEEEET_SE_SE_T0_: dwarf uses DW_CFA_GNU_args_size
ld: warning: could not create compact unwind for __ZNSt6vectorISsSaISsEEC1IPKPKcEET_S7_RKS0_: dwarf uses DW_CFA_GNU_args_size
ld: warning: could not create compact unwind for __ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPPN7testing8TestCaseESt6vectorIS4_SaIS4_EEEENS0_5__ops10_Iter_predINS2_8internal14TestCaseNameIsEEEET_SF_SF_T0_: dwarf uses DW_CFA_GNU_args_size
Undefined symbols for architecture x86_64:
  "testing::internal2::PrintBytesInObjectTo(unsigned char const*, unsigned long, std::__1::basic_ostream<char, std::__1::char_traits<char> >*)", referenced from:
      testing::internal2::TypeWithoutFormatter<std::nullptr_t, (testing::internal2::TypeKind)2>::PrintValue(std::nullptr_t const&, std::__1::basic_ostream<char, std::__1::char_traits<char> >*) in test.cpp.o

GoogleTestのmakefileを見ても、testing::internal2::PrintBytesInObjectToがあるソースをちゃんと含めているし、謎状態。 色々試行錯誤しても解決しないので、古い版(1.7.0)を落として同じ手順でやってみたら、うまく行きました。。。

f:id:osajiru:20150505020129j:plain

© 2009-2017 Osajiru All Rights Reserved.