Linking error using boost::thread - start_thread undefined

Hi All I'm new to using Boost and have a (hopefully simple) linker problem. I'm compiling using gcc 4.2.1 under OpenSUSE 10.3 and get the following: --- Invoking: GCC C++ Linker g++ -o"TestTransporter" ./src/TestTransporter.o -lrt -lpthread -lboost_thread ./src/TestTransporter.o: In function `thread<void (*)()>': /usr/include/boost/thread/pthread/thread.hpp:151: undefined reference to `boost::thread::start_thread()' --- The code is quite simple: --- #include <iostream> #include <string> #include <boost/thread/thread.hpp> void foo () {}; int main(int argc, char *argv[]) { std::cout << "!!!Hello World!!!" << std::endl; // prints !!!Hello World!!! boost::thread test_thread (&foo); return 0; } --- I've compiled the thread tests all ok and used the "-d+2" option but couldn't see any additional link options that I don't already have. Can anyone shine light on this for me? Regards, WR

"Wayne Russell" <wrussell.mail@gmail.com> wrote in message news:b8928dab0806220111n4970a0deuc87bf4941601f7a7@mail.gmail.com...
Hi All
I'm new to using Boost and have a (hopefully simple) linker problem.
I'm compiling using gcc 4.2.1 under OpenSUSE 10.3 and get the following:
--- Invoking: GCC C++ Linker g++ -o"TestTransporter" ./src/TestTransporter.o -lrt -lpthread -lboost_thread ./src/TestTransporter.o: In function `thread<void (*)()>': /usr/include/boost/thread/pthread/thread.hpp:151: undefined reference to `boost::thread::start_thread()' ---
Hi, I've not used "-l" to link with the Boost thread library before. Perhaps the name you use has to be more complete (include the gcc42-mt part) or the path isn't in your default library path. You may try explicit static linking to the library by adding something like "/usr/lib/libboost_thread-gcc42-mt.a" to your gcc command line. Check your system for the exact path/file name. Regards, Ryan
participants (2)
-
Ryan Melville
-
Wayne Russell