Hi.
I'd like a little guidance regarding the use of
please. I'm using mingw--gcc-3.4.5 with CodeBlocks 8.02. I'm dynamically
linking to boost_unit_test_framework-mgw34-d-1_36.dll via
boost_unit_test_framework-mgw34-d-1_36.lib. I have BOOST_TEST_DYN_LINK
defined and I've worked out that I need to have #define BOOST_TEST_MODULE
<whatever> defined in one source file prior to #include
.
That's all good so far and the following example compiles and runs.
------------------------
// Main.cpp
#define BOOST_TEST_MODULE Main
#include
------------------------
// Test1.cpp
#include
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_CHECK(true);
}
------------------------
// Test2.cpp
#include
BOOST_AUTO_TEST_CASE(test2)
{
BOOST_CHECK(true);
}
------------------------
My problem arises when I try to include in a
precompiled header.
------------------------
// Pch.h
#ifndef PCH_H_INCLUDED
#define PCH_H_INCLUDED
// Boost headers.
#include
#endif // PCH_H_INCLUDED
------------------------
// Main.cpp
#define BOOST_TEST_MODULE Main
#include
------------------------
// Test1.cpp
#include "Pch.h"
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_CHECK(true);
}
------------------------
// Test2.cpp
#include "Pch.h"
BOOST_AUTO_TEST_CASE(test2)
{
BOOST_CHECK(true);
}
------------------------
The compiler is exiting with no errors but no output binary is produced. The
build log reports:
Info: resolving vtable for boost::unit_test::unit_test_log_tby linking to
__imp___ZTVN5boost9unit_test15unit_test_log_tE (auto-import)
obj\Debug\Mnf\Mnf.EventTest.o: In function
`ZN5boost6detail17sp_counted_impl_pINS_9unit_test9ut_detail16callback0_impl_tINS3_6unusedEPFvvEEEED0Ev':
F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x0):
multiple definition of `boost::unit_test::(anonymous
namespace)::unit_test_log'
obj\Debug\Mnf\Mnf.BoostFunctionBindTest.o:F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x0):
first defined here
obj\Debug\Mnf\Mnf.EventTest.o: In function
`ZN5boost6detail17sp_counted_impl_pINS_9unit_test9ut_detail16callback0_impl_tINS3_6unusedEPFvvEEEED0Ev':
F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x4):
multiple definition of `boost::test_tools::(anonymous
namespace)::dummy_cond'
obj\Debug\Mnf\Mnf.BoostFunctionBindTest.o:F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x4):
first defined here
obj\Debug\Pch.o: In function
`ZN5boost9unit_test13test_observer12test_abortedEv':
F:/My
Documents/Development/Libraries/boost_1_36_0/boost/test/test_observer.hpp:(.bss+0x0):
multiple definition of `boost::unit_test::(anonymous
namespace)::unit_test_log'
obj\Debug\Mnf\Mnf.BoostFunctionBindTest.o:F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x0):
first defined here
obj\Debug\Pch.o: In function
`ZN5boost9unit_test13test_observer12test_abortedEv':
F:/My
Documents/Development/Libraries/boost_1_36_0/boost/test/test_observer.hpp:(.bss+0x4):
multiple definition of `boost::test_tools::(anonymous
namespace)::dummy_cond'
obj\Debug\Mnf\Mnf.BoostFunctionBindTest.o:F:/My
Documents/Development/Libraries/boost_1_36_0/boost/detail/sp_counted_base_gcc_x86.hpp:(.bss+0x4):
first defined here
I do not understand why the header file objects
to being included via a precompiled header file in this way. The following
simple case also works fine.
------------------------
// Pch.h
#ifndef PCH_H_INCLUDED
#define PCH_H_INCLUDED
// Boost headers.
#define BOOST_TEST_MODULE Main
#include
#endif // PCH_H_INCLUDED
------------------------
// Main.cpp
#include "Pch.h"
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_CHECK(true);
}
------------------------
I'll start having a look at the Boost source and see if I can work out what
I'm doing wrong, but if anyone can see a problem with what I'm trying to do
here I'd be grateful if they could point it out for me.
Thanks
Neutrino.
--
View this message in context: http://www.nabble.com/Problem-with-%3Cboost-test-unit_test.hpp%3E-in-precomp...
Sent from the Boost - Users mailing list archive at Nabble.com.