[pkg-boost-devel] Bug#456863: Boost.Test: main() not defined in shared library

Jens Seidel jensseidel at users.sf.net
Tue Dec 18 08:59:34 UTC 2007

Package: libboost-test1.34.1
Version: 1.34.1-2
Severity: important


the unit test library of Boost is currently not usable if one wants to
link against a shared library instead of using header files or the
static library.

Trying to link the sample program from

#include <boost/test/unit_test.hpp>

void my_test_function() { }

boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[])
  boost::unit_test::test_suite* test = BOOST_TEST_SUITE("Master test suite");
  test->add( BOOST_TEST_CASE( &my_test_function ) );
  return test;

results in:
$ g++ -Wall test.cpp -lboost_unit_test_framework-gcc41-1_34_1
/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

Linking against the static library works:
$ g++ -Wall test.cpp /usr/lib/libboost_unit_test_framework-gcc41-1_34_1.a 
$ ./a.out 
Running 1 test case...

*** No errors detected


More information about the pkg-boost-devel mailing list