CppUnit OS X 10.10的CMake链接器错误

CMake Linker Error with CppUnit OS X 10.10

本文关键字:链接 错误 CMake OS CppUnit      更新时间:2023-10-16

我的CMake环境有问题。我的团队使用CppUnit,但自从升级到OS X 10.10(Yosemite)以来,我们的测试构建一直失败此构建适用于Linux机器和OS X Mavericks。我们不知道为什么它不起作用。

我们的CMakeLists.txt可以在这里找到:https://gist.github.com/VikomMedia/802fb41a411dd2f7358e

...
Linking CXX executable sailbot_test
Undefined symbols for architecture x86_64:
  "SailingLogicTest::testShouldBeat()", referenced from:
      SailingLogicTest::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in SailingLogicTest.cpp.o
  "SailingLogicTest::testIsThereChangeToAWA()", referenced from:
      SailingLogicTest::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in SailingLogicTest.cpp.o
  "SailingLogicTest::testCanReachDestWithoutTack()", referenced from:
      SailingLogicTest::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in SailingLogicTest.cpp.o
  "SailingLogicTest::testIsThereChangeToAWAorBearing()", referenced from:
      SailingLogicTest::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in SailingLogicTest.cpp.o
  "CppUnit::SourceLine::SourceLine(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      SailingLogicTest::testArrivedAtDest() in SailingLogicTest.cpp.o
      SailingLogicTest::testGetBearing() in SailingLogicTest.cpp.o
...

完整日志可在此处找到:https://gist.github.com/VikomMedia/71ee83dcd6f7b538a343

结果与-stdlib=libc++和-stdlib=libstdc++相同

非常感谢。

我们能够通过在OS X 10.10机器上将编译器更改为G++来解决这个问题。clang++没有工作,原因目前还不清楚。