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

Ubuntu16.04编译QtMultimedia报错:Library 'gstreamer'未定义

解决Qt 5.12.1 QtMultimedia编译报错Project ERROR: Library 'gstreamer' is not defined

我之前在Ubuntu 16.04虚拟机上编译Qt 5.12系列的QtMultimedia模块时,也碰到过和你一模一样的问题——明明已经装了一堆GStreamer组件,qmake检测也显示找到GStreamer 1.0,但就是报这个库未定义的错误。给你几个亲测有效的解决步骤:

1. 先确认pkg-config能正确识别GStreamer 1.0

Qt的qmake是通过pkg-config来查找GStreamer库的,所以先排查这个环节:

  • 打开终端运行:
    pkg-config --exists gstreamer-1.0 && echo "Found gstreamer-1.0"
    
  • 如果没有输出"Found gstreamer-1.0",说明pkg-config找不到GStreamer的配置文件。因为你是i386系统,配置文件应该在/usr/lib/i386-linux-gnu/pkgconfig,可以临时设置环境变量再试:
    export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
    
    再重新运行上面的检测命令,确认能找到后再执行qmake。

2. 调整qmake命令的参数

之前的命令里GST_VERSION=1.0可能没有被正确识别,试试这些修改:

  • 方式一:直接指定启用GStreamer 1.0的配置项:
    /usr/local/Qt-5.12.1/bin/qmake -r CONFIG+=use_gstreamer_1_0 ../qt-everywhere-src-5.12.1/qtmultimedia/qtmultimedia.pro
    
  • 方式二:把pkg-config路径直接加到qmake命令前,确保它能找到配置:
    PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig /usr/local/Qt-5.12.1/bin/qmake -r GST_VERSION=1.0 ../qt-everywhere-src-5.12.1/qtmultimedia/qtmultimedia.pro
    

3. 补全编译依赖的基础库

虽然你装了很多GStreamer的包,但Ubuntu 16.04上编译QtMultimedia还需要一些基础系统库,确保这些已经安装:

sudo apt-get install libasound2-dev libx11-dev libxv-dev libxi-dev

这些库是QtMultimedia处理音频视频输出必须的,缺了也可能导致间接的库检测错误。

4. 清理构建目录重新配置

有时候构建目录里的缓存文件会残留旧配置,导致冲突:

  • 删除你当前的~/sources/qt/build目录(或者至少删除里面的qtmultimedia子目录)
  • 重新创建build目录,cd进去,再重新运行调整后的qmake命令

5. 检查QtMultimedia的配置文件(可选)

如果上面的方法都不行,可以去Qt源码的qt-everywhere-src-5.12.1/qtmultimedia目录,打开qtmultimedia.pro或者gstreamer/gstreamer.pro,确认里面有类似下面的配置:

CONFIG += link_pkgconfig
PKGCONFIG += gstreamer-1.0 gstreamer-base-1.0 gstreamer-video-1.0 gstreamer-audio-1.0

如果没有这些配置,手动加上后再重新运行qmake。

按照这些步骤来,应该能解决这个错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:30:23