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,