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

编译GStreamer文件遇链接错误:未定义符号_gst_webrtc_session_description_get_type

GStreamer编译链接错误排查与解决

问题背景

编译GStreamer WebRTC相关代码时,遭遇链接错误,无法找到gst_webrtc_session_description_get_type符号。

原编译命令

gcc file-name.c -o file-name \
    `pkg-config --cflags --libs gstreamer-1.0 gstreamer-plugins-bad-1.0 gstreamer-plugins-base-1.0` \
    -v && ./file-name

相关头文件信息

代码中引用的GST_TYPE_WEBRTC_SESSION_DESCRIPTION宏定义在/opt/homebrew/Cellar/gst-plugins-bad/1.20.3_1/include/gstreamer-1.0/gst/webrtc/rtcsessiondescription.h路径下,头文件关键代码如下:

#define GST_TYPE_WEBRTC_SESSION_DESCRIPTION (gst_webrtc_session_description_get_type())
GST_WEBRTC_API
GType gst_webrtc_session_description_get_type(void);

编译错误日志

Undefined symbols for architecture arm64:
  "_gst_webrtc_session_description_get_type", referenced from:
      _on_offer_created in simple-webrtc-example-1deda3.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

原因分析

尽管GST_TYPE_WEBRTC_SESSION_DESCRIPTION的头文件归属gst-plugins-bad,但在较新的GStreamer版本中,WebRTC相关实现已从gst-plugins-bad拆分出来成为独立组件。使用pkg-config --libs gstreamer-plugins-bad-1.0并不会自动链接WebRTC所需的库文件,导致链接阶段无法找到对应符号。

解决方法

将编译命令中的gstreamer-plugins-bad-1.0替换为专门的WebRTC pkg-config模块gstreamer-webrtc-1.0,修改后的编译命令如下:

gcc simple-webrtc-example.c -o simple-webrtc-example `pkg-config --cflags --libs gstreamer-1.0 gstreamer-webrtc-1.0 gstreamer-plugins-base-1.0` && ./simple-webrtc-example

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:54:32