CMake を使用して C++11 を使用するライブラリのテストをコンパイルしようとしています。Ubuntu で C++11 を使用して UnitTest++ を使用することに成功しましたが、Mac OS X でリンカー エラーが発生します。
CMake では、APPLE のリンカ フラグとライブラリは次のようになります。
SET(CMAKE_CXX_FLAGS "--stdlib=libc++ --std=c++11")
TARGET_LINK_LIBRARIES(mytest unittest++)
これでコンパイルすると、次のようなリンカ エラーが発生します。
Undefined symbols for architecture x86_64:
"std::string::c_str() const", referenced from:
UnitTest::MemoryOutStream::GetText() const in libunittest++.a(MemoryOutStream.o)
"std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:
UnitTest::MemoryOutStream::GetText() const in libunittest++.a(MemoryOutStream.o)
"std::ostream::~std::ostream()", referenced from:
construction vtable for std::ostream-in-UnitTest::MemoryOutStream in libunittest++.a(TestRunner.o)
construction vtable for std::ostream-in-UnitTest::MemoryOutStream in libunittest++.a(Test.o)
....
これが完全なペーストです。