Ошибка связывания OpenPose в std :: thread - PullRequest
0 голосов
/ 16 мая 2018

Итак, попытка собрать 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 / tenorflow_p36 / lib / libopencv_objdetect.so.3.3.1: неопределенная ссылка на std::thread::_State::~_State()@GLIBCXX_3.4.22

/ home / ubuntu / anaconda3 / envs / tenorflow_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 / tenorflow_p36 / lib / libopencv_objdetect.so.3.3.1: неопределенная ссылка на typeinfo for std::thread::_State@GLIBCXX_3.4.22

collect2: ошибка: 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 Ответ

0 голосов
/ 16 мая 2018

У меня была та же проблема, и я установил последние версии gcc и g ++, что решило проблему. Как здесь: https://askubuntu.com/a/789417

Я только что установил версию 8 (таким образом, gcc-8 и g ++ - 8). Затем вы должны вызвать альтернативные варианты обновления, как описано там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...