1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | /* * boost thread test */ #include <boost/thread/thread.hpp> #include <iostream> class Thread { public: Thread() { } virtual ~Thread() { thisThread->join(); } void start() { thisThread = new boost::thread(&Thread::run, this); } virtual void run()=0; private: boost::thread *thisThread; }; class MyThread: public Thread { public: MyThread() : Thread() { } virtual ~MyThread() { } void run() { std::cout << "MyThread"; } }; int main(int argc, char **argv) { Thread* t = new MyThread(); t->start(); delete t; return 0; } |
LyoKICogYm9vc3QgdGhyZWFkIHRlc3QKICovCiNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgVGhyZWFkIHsKcHVibGljOgoJVGhyZWFkKCkgewoJfQoJdmlydHVhbCB+VGhyZWFkKCkgewoJCXRoaXNUaHJlYWQtPmpvaW4oKTsKCX0KCgl2b2lkIHN0YXJ0KCkgewoJCXRoaXNUaHJlYWQgPSBuZXcgYm9vc3Q6OnRocmVhZCgmVGhyZWFkOjpydW4sIHRoaXMpOwoJfQoKCXZpcnR1YWwgdm9pZCBydW4oKT0wOwoKcHJpdmF0ZToKCWJvb3N0Ojp0aHJlYWQgKnRoaXNUaHJlYWQ7Cn07CgpjbGFzcyBNeVRocmVhZDogcHVibGljIFRocmVhZCB7CnB1YmxpYzoKCU15VGhyZWFkKCkgOgoJCQlUaHJlYWQoKSB7Cgl9Cgl2aXJ0dWFsIH5NeVRocmVhZCgpIHsKCX0KCgl2b2lkIHJ1bigpIHsKCQlzdGQ6OmNvdXQgPDwgIk15VGhyZWFkIjsKCX0KfTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewoJVGhyZWFkKiB0ID0gbmV3IE15VGhyZWFkKCk7Cgl0LT5zdGFydCgpOwoKCWRlbGV0ZSB0OwoJcmV0dXJuIDA7Cn0KCg==
/home/ROxhiN/ccNziPC8.o: In function `MyThread::~MyThread()': prog.cpp:(.text._ZN8MyThreadD0Ev[MyThread::~MyThread()]+0x15): undefined reference to `boost::thread::join()' /home/ROxhiN/ccNziPC8.o: In function `MyThread::~MyThread()': prog.cpp:(.text._ZN8MyThreadD1Ev[MyThread::~MyThread()]+0x12): undefined reference to `boost::thread::join()' /home/ROxhiN/ccNziPC8.o: In function `Thread::~Thread()': prog.cpp:(.text._ZN6ThreadD0Ev[Thread::~Thread()]+0x15): undefined reference to `boost::thread::join()' /home/ROxhiN/ccNziPC8.o: In function `Thread::~Thread()': prog.cpp:(.text._ZN6ThreadD1Ev[Thread::~Thread()]+0x12): undefined reference to `boost::thread::join()' /home/ROxhiN/ccNziPC8.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, Thread>, boost::_bi::list1<boost::_bi::value<Thread*> > > >::~thread_data()': prog.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv6ThreadEENS2_5list1INS2_5valueIPS6_EEEEEEED0Ev[boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, Thread>, boost::_bi::list1<boost::_bi::value<Thread*> > > >::~thread_data()]+0x12): undefined reference to `boost::detail::thread_data_base::~thread_data_base()' /home/ROxhiN/ccNziPC8.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, Thread>, boost::_bi::list1<boost::_bi::value<Thread*> > > >::~thread_data()': prog.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv6ThreadEENS2_5list1INS2_5valueIPS6_EEEEEEED1Ev[boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, Thread>, boost::_bi::list1<boost::_bi::value<Thread*> > > >::~thread_data()]+0xb): undefined reference to `boost::detail::thread_data_base::~thread_data_base()' /home/ROxhiN/ccNziPC8.o: In function `boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)': prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x58): undefined reference to `vtable for boost::detail::thread_data_base' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x18e): undefined reference to `boost::thread::start_thread()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1ba): undefined reference to `boost::thread_resource_error::thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1c2): undefined reference to `boost::thread_resource_error::~thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1ca): undefined reference to `typeinfo for boost::thread_resource_error' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1ea): undefined reference to `boost::thread_resource_error::thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1f2): undefined reference to `boost::thread_resource_error::~thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x1fa): undefined reference to `typeinfo for boost::thread_resource_error' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x21a): undefined reference to `boost::thread_resource_error::thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x222): undefined reference to `boost::thread_resource_error::~thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x22a): undefined reference to `typeinfo for boost::thread_resource_error' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x24a): undefined reference to `boost::thread_resource_error::thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x252): undefined reference to `boost::thread_resource_error::~thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x25a): undefined reference to `typeinfo for boost::thread_resource_error' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x27a): undefined reference to `boost::thread_resource_error::thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x282): undefined reference to `boost::thread_resource_error::~thread_resource_error()' prog.cpp:(.text._ZN5boost6threadC1IM6ThreadFvvEPS2_EET_T0_[boost::thread::thread<void (Thread::*)(), Thread*>(void (Thread::*)(), Thread*)]+0x28a): undefined reference to `typeinfo for boost::thread_resource_error' /home/ROxhiN/ccNziPC8.o:(.rodata._ZTIN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf0Iv6ThreadEENS2_5list1INS2_5valueIPS6_EEEEEEEE[typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf0<void, Thread>, boost::_bi::list1<boost::_bi::value<Thread*> > > >]+0x8): undefined reference to `typeinfo for boost::detail::thread_data_base' collect2: ld returned 1 exit status
-
result: Compilation error (maybe you wish to see an example for C++ 4.7.2)


