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

Ubuntu22.04下带CUDA的OpenCV导入报错:gst_base_src_new_segment未定义

Ubuntu22.04编译带CUDA支持的OpenCV兼容算力6.1GPU的问题解决记录

环境配置与编译概况

  • 系统:Ubuntu 22.04
  • 依赖版本:OpenCV 4.2.0、Nvidia Toolkit 11.5、gcc/g++ 10.4.0、Anaconda虚拟环境Python 3.10.6
  • 编译结果:完成安装,仅出现4条重复的"无害"警告,但后续运行阶段出现问题

遇到的具体问题

  • 系统命令行执行pkg-config --libs opencv时,提示库不存在
  • Anaconda虚拟环境中导入OpenCV触发错误:
    /lib/x86_64-linux-gnu/libgstapp-1.0.so.0: undefined symbol: gst_base_src_new_segment
    
    错误发生在cv2/__init__.py的bootstrap()执行阶段
  • 未找到cv2.so文件,且发现Python3.10.6由gcc11.2.0编译,怀疑版本不匹配可能引发问题
  • 编译时必须执行conda install -c conda-forge gcc=10.4.0,否则会出现其他编译错误

问题排查与尝试修复过程

  1. 定位根因:Ubuntu22.04默认搭载gstreamer1.20,而Anaconda环境自带gstreamer1.14.0,gst_base_src_new_segment是gstreamer1.18版本新增的符号,版本差异导致符号查找失败
  2. 尝试多种修复方案均失败:
    • 降级系统gstreamer风险过高,未执行
    • 升级Anaconda环境的gstreamer:
      • 执行conda uninstall gstreamer会连带卸载Anaconda Navigator,不可行
      • 通过anaconda源安装gstreamer默认是1.14.0版本,无法升级
      • 指定fastchan源安装1.20.3版本,无法替换环境核心库版本
    • 尝试安装Anaconda官方提供的gstreamer1.18.5更新包,出现兼容性错误,无法完成更新

最终解决方法

由于实际使用中不需要gstreamer(FFmpeg可满足需求),重新编译OpenCV时添加编译参数:

-D WITH_GSTREAMER=OFF

禁用gstreamer支持后,问题彻底解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:15:52