Boost logo

Boost Users :

Subject: [Boost-users] Missing thread symbols when compiling from source: join(), ~thread() and start_thread()
From: Edward Kornkven (eakornkven_at_[hidden])
Date: 2015-08-21 20:54:15


I am trying to build Boost for linking with an application. I do not have
admin access and there is an existing older Boost version in the system
area. My problem is that there are three thread symbols that do not get
defined by my build process:

undefined reference to `boost::thread::join()'
undefined reference to `boost::thread::~thread()'
undefined reference to `boost::thread::start_thread()'

Google reveals that this problem has been around for a while but the usual
remedy is to install some binary or other. I need to build from source but
for the life of me I can't understand what I am doing wrong that these
symbols are not being defined. I can search everything that is being built
using "nm" and they just aren't there.

I think I am using a pretty standard build process of first building
Boost.Build, then the rest:

./ --with-toolset=gcc
./b2 install --prefix=${PREFIX}
${PREFIX}/bin/b2 --prefix=${PREFIX} toolset=gcc install

I have geared down to various forms of magic: stage and then install,
--without-thread followed by --with-thread, but I must be missing
something basic about these libraries which I do not have occasion to use
routinely. The build scripts are a bit opaque but don't indicate any
errors. I am a little surprised that this isn't in an FAQ somewhere but
maybe not many of us build Boost from source. Thanks for any assistance.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at