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

Ubuntu 18.04升级Gstreamer后如何全局切换新版本路径?

解决Gstreamer手动编译后全局生效的问题

一、重新编译并完成安装

你之前仅执行了编译步骤,未将编译产物安装到系统路径,且建议指定独立安装目录避免与Jetpack自带版本冲突:

  1. 进入之前的build目录清理旧构建文件:
cd gstreamer/build
ninja clean
rm -rf *
  1. 用meson指定安装路径(推荐/opt/gstreamer-1.20,可根据你要安装的版本调整):
meson --prefix=/opt/gstreamer-1.20 --libdir=lib/aarch64-linux-gnu ..

注:Jetson为arm64架构,指定lib/aarch64-linux-gnu能让系统正确识别库文件路径

  1. 编译并完成安装:
ninja
sudo ninja install

二、配置全局环境变量

让系统优先加载新版本的Gstreamer二进制文件、库和配置:

  1. 创建全局环境配置文件:
sudo nano /etc/profile.d/gstreamer-new.sh
  1. 添加以下内容(对应你指定的安装路径):
export PATH=/opt/gstreamer-1.20/bin:$PATH
export LD_LIBRARY_PATH=/opt/gstreamer-1.20/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/gstreamer-1.20/lib/aarch64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
  1. 保存文件后刷新环境变量:
source /etc/profile.d/gstreamer-new.sh
  1. 验证版本是否切换成功:
gst-launch-1.0 --version

此时应显示你安装的1.18或1.20版本。

三、让C代码编译时链接新版本

编译Gstreamer相关C代码时,需确保编译器指向新版本的头文件和库:

  • 直接用gcc编译时,通过pkg-config获取参数:
gcc your_gst_app.c -o your_gst_app `pkg-config --cflags --libs gstreamer-1.0`

由于已配置PKG_CONFIG_PATH,pkg-config会自动调用新版本的配置信息。

  • 用CMake构建时,在CMakeLists.txt中添加:
find_package(PkgConfig REQUIRED)
pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0)
include_directories(${GSTREAMER_INCLUDE_DIRS})
link_directories(${GSTREAMER_LIBRARY_DIRS})
add_executable(your_gst_app your_gst_app.c)
target_link_libraries(your_gst_app ${GSTREAMER_LIBRARIES})

四、注意事项

  • 不要删除Jetpack自带的Gstreamer,系统依赖该版本运行基础组件,我们仅通过环境变量让系统优先使用新版本
  • 若需临时切换回旧版本,只需注释/etc/profile.d/gstreamer-new.sh中的内容,再执行source /etc/profile.d/gstreamer-new.sh即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:15:38