Получение неопределенной ссылки на std :: thread :: _ M_start_thread
Я создаю приложение, которое использует стороннюю библиотеку (Box2D-MT), которую я создаю из исходников. При связывании я получаю эту неопределенную ошибку ссылки:
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 (*)())'
Я строю с G ++ и ссылку с
-lBox2D -lpthread -lrt -ldl -lstdc++
Кроме того, я собираю с
-std=c++11
заглядывая в libstdc ++. a я вижу похожий этот символ существует (это "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>)
но эта перегрузка не принимает второй параметр.
Я искал во всем Интернете что-то похожее, но никто, похоже, не имел этой проблемы раньше (в любом контексте).
Любой намек на то, почему я получаю эту ошибку и как я могу ее решить?