g++3.4 - boost1.37

 

Hello,

 

I have n translation units .cpp and m auto test suites spread over the n files.

 

For e.g.

 

file ni.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite1)

BOOST_AUTO_TEST_CASE(case1)

BOOST_AUTO_TEST_SUITE_END()

 

file nj.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite1)

BOOST_AUTO_TEST_CASE(case2)

BOOST_AUTO_TEST_CASE(case3)

BOOST_AUTO_TEST_SUITE_END()

 

file nk.cpp--------------------

#include <boost/test/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(suite2)

BOOST_AUTO_TEST_CASE(case1)

BOOST_AUTO_TEST_CASE(case2)

BOOST_AUTO_TEST_SUITE_END()

 

The .cpp files are compiled with -DBOOST_TEST_MAIN=

 

AFAIU, I am then not required to provide the “init_unit_test” function nor the “main” function.

 

I then try to link an executable:

g++ -m64 -Wall -Wextra -Wsign-compare -Werror -Wno-unused -std=c++98 -pedantic -Wno-long-long -pipe -g -lboost_unit_test_framework-gcc34-mt-d-1_37 -o executable *.o

 

but i get this:

 

nk.o: In function `init_unit_test_suite(int, char**)':

...boost/test/unit_test_suite.hpp:188: multiple definition of `init_unit_test_suite(int, char**)'

ni.o: ...boost/test/unit_test_suite.hpp:188: first defined here

for each object file

 

and

 

/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o(.text+0x21): In function `_start':

: undefined reference to `main'

 

Regards,