Fedora 41下构建Rust项目遇alsa-sys v0.3.1编译失败,如何解决?
问题描述
我有一个Rust项目,构建时出现以下错误:
error: failed to run custom build command for `alsa-sys v0.3.1` Caused by: process didn't exit successfully: `/home/raj/Coding/rust/storybook-gpui/target/debug/build/alsa-sys-27968714bcc42d62/build-script-build` (exit status: 101) --- stdout cargo:rerun-if-env-changed=ALSA_NO_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG cargo:rerun-if-env-changed=ALSA_STATIC cargo:rerun-if-env-changed=ALSA_DYNAMIC cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR --- stderr thread 'main' panicked at /home/raj/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/alsa-sys-0.3.1/build.rs:13:18: pkg-config exited with status code 1 > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags alsa The system library `alsa` required by crate `alsa-sys` was not found. The file `alsa.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory. The PKG_CONFIG_PATH environment variable is not set. HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `alsa.pc`. note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace warning: build failed, waiting for other jobs to finish...
系统为Fedora 41,已安装alsa-lib,但找不到alsa.pc文件,已有的alsa相关文件如下:
➜ storybook-gpui git:(main) ls /usr/lib64/alsa-lib libasound_module_ctl_pipewire.so libasound_module_pcm_pipewire.so ➜ storybook-gpui git:(main) ls /usr/lib/alsa/ init ➜ storybook-gpui git:(main) ls /usr/lib/alsa/init 00main ca0106 default hda help info test
系统信息:
✗ lsb_release -a LSB Version: :core-5.0-amd64:core-5.0-noarch Distributor ID: Fedora Description: Fedora release 41 (Forty One) Release: 41 Codename: FortyOne
请问如何修复此错误?
解决方案
- 在Fedora系统中,
alsa.pc文件属于alsa-lib-devel开发包,而非基础的alsa-lib包,执行以下命令安装:sudo dnf install alsa-lib-devel - 验证文件是否存在:安装完成后,
alsa.pc通常位于/usr/lib64/pkgconfig/目录,可用以下命令确认:ls /usr/lib64/pkgconfig/alsa.pc - 重新构建项目:此时pkg-config可自动找到配置文件,直接运行构建命令:
cargo build - 若仍无法识别,可临时设置环境变量后再构建:
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig/ cargo build
内容的提问来源于stack exchange,提问作者user51
相关产品推荐
相关产品推荐

