You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Travis CI构建Rust二进制时解决alsa-sys找不到alsa.pc的问题

解决Travis CI Linux构建中alsa-sys找不到alsa.pc的问题

这个问题的根源很清晰:Travis CI的Linux虚拟机默认没有安装ALSA的开发依赖库,而alsa-sys crate需要通过pkg-config来定位alsa.pc文件,找不到这个文件自然就会构建失败。

你只需要在.travis.yml中添加一个针对Linux系统的依赖安装步骤就能解决,具体操作如下:

  1. 在配置中新增before_install字段,针对Linux系统安装libasound2-dev(这是Ubuntu/Debian环境下ALSA开发库的包名,Travis的Linux构建环境基于Ubuntu):

修改后的完整.travis.yml配置如下(我标记了新增的核心部分):

language: rust
cache: cargo
rust:
  - stable
matrix:
  allow_failures:
    - rust: nightly
  fast_finish: true
os:
  - osx
  - windows
  - linux
# 新增的before_install步骤,仅在Linux环境执行依赖安装
before_install:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update && sudo apt-get install -y libasound2-dev; fi
script:
  - cargo build --verbose --release
before_deploy:
  - if [[ -f target/release/soundsense-rs ]]; then mv target/release/soundsense-rs "target/release/soundsense-rs-$TRAVIS_TAG-$TRAVIS_OS_NAME"; fi
  - if [[ -f target/release/soundsense-rs.exe ]]; then mv target/release/soundsense-rs.exe "target/release/soundsense-rs-$TRAVIS_TAG-$TRAVIS_OS_NAME.exe"; fi
deploy:
  - provider: releases
    skip_cleanup: true
    on:
      tags: true
      condition: "$TRAVIS_RUST_VERSION = stable"
      branch: release
    file_glob: true
    file:
      - target/release/soundsense-rs-*
    api_key: secure: IRdsT0enLWr2qaa63GPnITLaYdar4vDKcKfo9Fm1PlDoWi1gigTZ2elegApdBQmWzcgdHEtiEayg9KtQw76R/l7bH2Yst3kvZPyd635g6Cwj9XUp70opApLeKdVGQhnvGA2fMehYXNfcLi8wn65th3katabvJhuU26C1ICAFt1ExVu2iDbIjUYPmg5O4f3BAvHYlGe5BNyA3C20sakD25ocp+Z/KaI1gfRdYvm3cwVuci63N2O0c+j2IHkaUg/bfA7XHRUqzxO1U4MNrRyYAwRRiIJ+wgKVh9qISt4N0Uw8IZR8ZmBkeK4OPkh+ggb05ONoOpCuOVDGKqMzbEG0SNKbDpwXdxfCkmbtNeXrORX6ZSlNPJOGaPhrD36WYZdRGOZMNC4lSgev/O2lZ/TfJc1Qj9kXlD7kbmG/vKrSkQYs4i/5p4a93E0zgBfyWiK1wiUYCc01PF5YKjbc0n7aymSO3z3CzGijwykH6MKFnInk1JtJ2aUjBM722oKVuCaW/JDikN4wMgPrlIMUY+dLrXBJZLXra89B/RS6un1NsTO0IPyMDQYKRgp6yTkvWJHux0m0Gwexnc+S/dPhb9Z023UDA0pb504XNc7ggpo9xtb5sUa/z/xQRoX3fKFSUEOoNLI3Kw/DE4QwHmnvVSdOGF4+s3Kj2JqnKSZusq3yycnw=

为什么这个方法有效?

libasound2-dev包包含了ALSA的头文件和alsa.pc配置文件,安装后pkg-config就能在系统默认的搜索路径中找到alsa.pcalsa-sys的构建脚本也就可以正常获取编译和链接所需的参数了。

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

火山引擎 最新活动