Поэтому попытался собрать 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]: *** В ожидании незавершенных работ ….
У меня была та же проблема, и я установил последние версии gcc и g ++, что решило проблему. Как здесь:
https://askubuntu.com/a/789417
Я только что установил версию 8 (таким образом, gcc-8 и g ++ — 8). Затем вы должны вызвать альтернативы обновления, как описано там.
Других решений пока нет …