Ошибка связывания OpenPose в std::thread
Поэтому попытался собрать OpenPose из исходного кода и столкнулся с проблемой компоновки. Текущая среда - Ubuntu 16.04.4. Версия OpenCV - 3.3.1. Версия GCC 5.4.0.
[87%] Построенная цель openpose
[87%] Связывание исполняемого файла CXX 1_extract_from_image.bin
[87%] Связывание CXX исполняемого файла openpose.bin
[87%] Связывание исполняемого файла CXX 3_user_input_processing_and_output.bin
[87%] Связывание исполняемого файла CXX 2_extract_pose_or_heatmat_from_image.bin
[87%] Связывание исполняемого файла CXX 1_custom_post_processing.bin
[87%] Связывание исполняемого файла CXX 2_user_processing_function.bin
[88%] Связывание CXX исполняемого файла 1_openpose_read_and_display.bin
/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/libopencv_objdetect.so.3.3.1: неопределенная ссылка на
std::thread::_State::~_State()@GLIBCXX_3.4.22
/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/libopencv_objdetect.so.3.3.1: неопределенная ссылка на
std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())@GLIBCXX_3.4.22
/home/ubuntu/anaconda3/envs/tensorflow_p36/lib/libopencv_objdetect.so.3.3.1: неопределенная ссылка на
typeinfo for std::thread::_State@GLIBCXX_3.4.22
collect2: error: ld вернул 1 состояние выхода
examples/openpose/CMakeFiles/openpose.bin.dir/build.make:150: сбой рецепта для цели "examples / openpose / openpose.bin"
make[2]: *** [examples/openpose/openpose.bin] Ошибка 1
CMakeFiles / Makefile2: 1135: сбой рецепта для цели "examples/openpose/CMakeFiles/openpose.bin.dir/all"
make[1]: *** [examples/openpose/CMakeFiles/openpose.bin.dir/all] Ошибка 2
make [1]: *** В ожидании незавершенных работ....
1 ответ
У меня была та же проблема, и я установил последние версии gcc и g ++, что решило проблему. Как здесь: /questions/35914516/obnovlenie-prilozheniya-java-ee-do-java-6/35914542#35914542
Я только что установил версию 8 (таким образом, gcc-8 и g++-8). Затем вы должны вызвать альтернативы обновления, как описано там.