Boost logo

Boost :

From: Joe Van Dyk (joevandyk_at_[hidden])
Date: 2006-07-10 16:20:52


On 7/10/06, Joe Van Dyk <joevandyk_at_[hidden]> wrote:
> On 7/9/06, Gennadiy Rozental <gennadiy.rozental_at_[hidden]> wrote:
> > "Joe Van Dyk" <joevandyk_at_[hidden]> wrote in message
> > news:c715e640607091915m2142172bo6d437e4c04d7ff5b_at_mail.gmail.com...
> > > On 7/9/06, Marc Mutz <marc_at_[hidden]> wrote:
> > >> On Friday 07 July 2006 04:40, Joe Van Dyk wrote:
> > >> > I'm trying to get something like the following to work:
> > >> >
> > >> > test_case1.cpp and test_cast2.cpp are compiled into a static library
> > >> > (libtest.a). They use BOOST_AUTO_TEST_CASE for test cases.
> > >> >
> > >> > test_main.cpp contains:
> > >> > #define BOOST_AUTO_TEST_MAIN
> > >> > #include <boost/test/auto_unit_test.hpp>
> > >> >
> > >> > However, when I compile test_main.cpp and link libtest.a into it, none
> > >> > of the test cases run.
> > >> >
> > >> > The test cases do run if test_main.cpp #includes test_case1.cpp and
> > >> > test_case2.cpp, but I'd rather not do that if it's not necessary.
> > >> >
> > >> > Any ideas?
> > >> <snip>
> > >>
> > >> I'm guessing here :)
> > >> Registration of tests with the runner is done using file-static instances
> > >> of
> > >> some generic factory or other registration mechanism. If none of the
> > >> symbols
> > >> of given object file is referenced outside itself, the linker does not
> > >> include the code from the object file in the final executable. Use
> > >> dynamic
> > >> libs, or link the object files instead of the archives.
> >
> > This could be the reason. But to employ the dynamic build you will need
> > current CVS version. 1.33.1 won't work.
> >
> > > Hm, I'll try that. I don't think that fits as nicely into our build
> > > system, but I'll have to check on Monday.
> > >
> > > Can anyone else chime in on this?
> >
> > Maybe you could use some compiler options to avoid unused static files
> > discard?
>
> Hm, I've never heard of that option. I'll look into it.

Any chance you could tell me what flags the GNU GCC compiler would do
the trick? I can't find anything that resembles "avoid unused static
files discard".


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk