macOS运行gstreamer crate报错:use of undeclared crate or module 'gst'
解决macOS上Rust gstreamer crate的
use of undeclared crate or module gst错误 第一步:修正代码笔误
你的代码里存在拼写错误,get::init()应改为gst::init(),修正后代码如下:
use gst::prelude::*; fn main() { gst::init().unwrap(); }
第二步:配置GStreamer库路径(关键)
你通过二进制安装包将GStreamer部署在/Library/Frameworks/GStreamer.framework,Cargo默认无法识别该路径,需手动指定:
临时生效方案(单次编译)
在终端执行编译命令前,先设置环境变量:
export PKG_CONFIG_PATH="/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig" export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/GStreamer.framework/Versions/Current/lib"
随后运行cargo build或cargo run即可。
永久生效方案
将上述环境变量添加到你的shell配置文件(如~/.zshrc或~/.bashrc):
echo 'export PKG_CONFIG_PATH="/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig"' >> ~/.zshrc echo 'export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/GStreamer.framework/Versions/Current/lib"' >> ~/.zshrc source ~/.zshrc
用build.rs配置(推荐)
在项目根目录创建build.rs文件,内容如下:
fn main() { println!("cargo:rustc-link-search=native=/Library/Frameworks/GStreamer.framework/Versions/Current/lib"); println!("cargo:rustc-link-lib=gstreamer-1.0"); }
Cargo编译时会自动读取该文件,链接指定路径的GStreamer库。
额外检查
确认GStreamer二进制安装包版本与Rust crate版本匹配:gstreamer = "0.20.2"对应GStreamer 1.20及以上版本,版本不匹配也会引发编译错误。
内容的提问来源于stack exchange,提问作者royB
相关产品推荐
相关产品推荐

