Boost logo

Boost Users :

From: Sam Partington (sam.partington_at_[hidden])
Date: 2002-09-04 06:01:31


Hi,

I'm trying to link an app using boost threads and stlport on gcc
2.95(linux), and its coming back with an undefined reference:

Debug/threadex.o: In function `threadex::go(void)':
.../threadex.cpp:37: undefined reference to
`boost::thread::thread(boost::function0<void, boost::empty_function_policy,
boost::empty_function_mixin, allocator<boost::function_base> > const &)'

and the offending code is

 new boost::thread(threadex_caller(this));

where theadex_caller looks like this

struct threadex_caller
{
        threadex_caller(threadex*);
        void operator()();
};

I think the problem is the allocator template parameter of boost::function0,
a clue is given if I don't link against the pthread library, I get the
following undefined reference (amongst others)

Debug/libboost_thread.a(thread.o): In function
`boost::thread::thread(boost::function0<void, boost::empty_function_policy,
boost::empty_function_mixin, _STL::allocator<boost::function_base> > const
&)':
.../src/thread.cpp:112: undefined reference to `pthread_create'

where you can see that the thread::thread function expects a function0 with
an _STL::allocator<>, not a plain allocator<>

I also think that the problem is that the thread.hpp isn't getting the
namespace mapping function, but why?

TIA

Sam


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net