You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04编译OpenPose时遇std::thread链接错误求助

解决OpenPose编译时GLIBCXX版本不匹配的链接错误

问题根源

你碰到的这个链接错误,核心是GLIBCXX版本不兼容:
Anaconda环境里的libopencv_objdetect.so.3.3.1是用更高版本的GCC编译的,它依赖的std::thread相关符号属于GLIBCXX_3.4.22,但你的系统GCC 5.4.0默认提供的libstdc++.so只支持到GLIBCXX_3.4.21(GCC 6.x及以上才引入GLIBCXX_3.4.22),所以链接器找不到对应的符号。

解决方案

下面提供几种从易到难的解决思路,你可以根据自己的需求选择:

方案1:切换到系统自带的OpenCV(推荐)

Anaconda的OpenCV经常会和系统环境产生兼容性问题,优先用系统版本的OpenCV来编译OpenPose:

  • 先卸载Anaconda环境里的OpenCV:
    conda activate tensorflow_p36
    conda remove opencv
    
  • 安装Ubuntu官方源的OpenCV 3.3(或者自己编译系统版本的OpenCV):
    sudo apt update
    sudo apt install libopencv-dev libopencv-core-dev libopencv-objdetect-dev
    
  • 重新配置OpenPose的CMake,确保它链接到系统的OpenCV:
    cd openpose/build
    rm -rf *
    cmake -DOpenCV_DIR=/usr/share/OpenCV ..
    make -j$(nproc)
    

方案2:升级系统GCC到6.x版本

如果必须用Anaconda的OpenCV,那就把系统GCC升级到支持GLIBCXX_3.4.22的版本:

  • 添加Ubuntu工具链的PPA:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt update
    
  • 安装GCC 6和G++ 6:
    sudo apt install gcc-6 g++-6
    
  • 设置GCC 6为默认编译器:
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
    
  • 验证GCC版本:gcc --version,确认显示为6.x
  • 最后重新编译OpenPose即可

方案3:临时指定Anaconda的libstdc++.so(不推荐)

这是个临时 workaround,可能会引发其他兼容性问题,但可以快速验证是否有效:

  • 在编译OpenPose时,修改CMakeLists.txt,添加链接Anaconda的libstdc++:
    在OpenPose的主CMakeLists.txt中添加:
    link_directories(/home/ubuntu/anaconda3/envs/tensorflow_p36/lib)
    target_link_libraries(openpose.bin stdc++)
    
  • 或者在make时直接传递参数:
    make -j$(nproc) LDFLAGS="-L/home/ubuntu/anaconda3/envs/tensorflow_p36/lib -lstdc++"
    

验证步骤

你可以先确认系统和Anaconda环境的GLIBCXX版本:

  • 查看系统libstdc++支持的版本:
    strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
    
  • 查看Anaconda环境libstdc++支持的版本:
    strings /home/ubuntu/anaconda3/envs/tensorflow_p36/lib/libstdc++.so.6 | grep GLIBCXX
    

对比两者就能明显看到Anaconda的版本更高,这就是问题的关键。

内容的提问来源于stack exchange,提问作者itsxqtar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:47:33