Как динамически связать cppunit на Mac? - PullRequest
0 голосов
/ 15 мая 2018

Я установил GNU g ++ и cppunit с помощью этой команды:

brew install gcc cppunit

Библиотека, кажется, установлена ​​правильно:

$ find / -name "libcppunit*" 2> /dev/null
/usr/local/lib/libcppunit-1.14.0.dylib
/usr/local/lib/libcppunit.a
/usr/local/lib/libcppunit.dylib
/usr/local/Cellar/cppunit/1.14.0/lib/libcppunit-1.14.0.dylib
/usr/local/Cellar/cppunit/1.14.0/lib/libcppunit.a
/usr/local/Cellar/cppunit/1.14.0/lib/libcppunit.dylib

Вот код, который я написал и который используетCppUnit.Файл называется test.cpp.Не обращайте внимания на тот факт, что в этом коде нет бегуна.В настоящее время меня интересуют только ссылки.

#include <cppunit/extensions/HelperMacros.h>
#include <iostream>

class FooTest : public CppUnit::TestFixture
{
protected:
    void testBasic()
    {
        CPPUNIT_ASSERT_EQUAL(1 + 1, 2);
    }

    void testBasic2()
    {
        CPPUNIT_ASSERT_EQUAL(1 + 2, 3);
    }
private:
    CPPUNIT_TEST_SUITE(FooTest);
    CPPUNIT_TEST(testBasic);
    CPPUNIT_TEST(testBasic2);
    CPPUNIT_TEST_SUITE_END();
};

CPPUNIT_TEST_SUITE_REGISTRATION(FooTest);

int main()
{
    std::cout << "hello\n";
    return 0;
}

Как теперь я могу динамически связать его с cppunit?Следующая попытка не удалась:

$ g++ -lcppunit test.cpp
Undefined symbols for architecture x86_64:
  "CppUnit::SourceLine::SourceLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)", referenced from:
      FooTest::testBasic()     in ccyx1sc9.o
      FooTest::testBasic2()      in ccyx1sc9.o
  "CppUnit::AdditionalMessage::AdditionalMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      void CppUnit::assertEquals<int>(int const&, int const&, CppUnit::SourceLine, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in ccyx1sc9.o
  "CppUnit::TestFactoryRegistry::getRegistry(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      CppUnit::AutoRegisterSuite<FooTest>::AutoRegisterSuite() in ccyx1sc9.o
...
...
...