Ich baue eine App, die eine 3rd Party lib (Box2D-MT) verwendet, die ich aus Quellen erstelle. Bei der Verknüpfung, ich diese undefined reference Fehler:Undefinierter Verweis auf std :: thread :: _ M_start_thread
b2Threading.cpp:(.text._ZNSt6threadC2IM12b2ThreadPoolFviEJPS1_iEEEOT_DpOT0_[_ZNSt6threadC5IM12b2ThreadPoolFviEJPS1_iEEEOT_DpOT0_]+0xa4):
undefined reference to 'std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)())'
ich mit g bin Gebäude ++ und Link mit
-lBox2D -lpthread -lrt -ldl -lstdc++
auch, ich bin Kompilieren mit
-std=c++11
Blick in libstdC++ ein. Ich kann sehen, dass ein ähnliches Symbol existiert (es ist "T"):
nm -C /usr/lib/gcc/x86_64-linux-gnu/4.9.2/libstdc++.a | grep _M_start_thread
0000000000000000 T std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>)
aber diese Überladung nimmt keinen zweiten Parameter.
Ich habe das ganze Internet nach etwas ähnlichem gesucht, aber niemand scheint dieses Problem vorher gehabt zu haben (in irgendeinem Zusammenhang).
Irgendein Hinweis darauf, warum ich diesen Fehler bekomme und wie ich es lösen könnte?
Verwenden Sie das '-pthread' Compiler-Flag anstelle von' -lpthread'. Verwenden Sie es zum Kompilieren und Verknüpfen. –
@ πάνταῥεῖ versucht, dass jetzt, bekomme ich genau den gleichen Fehler –
Was ist Ihr ** voll ** Link-Befehl? –