- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 travis-ci 构建一个 rust 二进制文件。我设法让 windows 和 osx 构建工作,但 linux 构建一直失败。
似乎“alsa-sys” crate (依赖项之一)无法在 linux-vm 中找到 alsa.pc。
.travis.yml:
language: rust
cache: cargo
rust:
- stable
matrix:
allow_failures:
- rust: nightly
fast_finish: true
os:
- osx
- windows
- linux
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=
错误信息:
Running `/home/travis/build/prixt/soundsense-rs/target/release/build/alsa-sys-9e3efef5874a428f/build-script-build`
error: failed to run custom build command for `alsa-sys v0.1.2`
Caused by:
process didn't exit successfully: `/home/travis/build/prixt/soundsense-rs/target/release/build/alsa-sys-9e3efef5874a428f/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"alsa\"` did not exit successfully: exit code: 1\n--- stderr\nPackage alsa was not found in the pkg-config search path.\nPerhaps you should add the directory containing `alsa.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'alsa\' found\n"', src/libcore/result.rs:999:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
warning: build failed, waiting for other jobs to finish...
error: build failed
The command "cargo build --verbose --release" exited with 101.
我需要添加什么命令来解决这个问题?
最佳答案
按照@Jmb 的建议,我在 before_install 步骤中添加了一些包安装命令:
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y libasound2-dev ; sudo apt-get install -y libwebkit2gtk-4.0 ; fi
(我还需要为另一个依赖项安装 libwebkit2gtk 包)这解决了问题。
关于linux - 在将 'alsa-sys' crate 构建为依赖项时,如何安装和连接 alsa.pc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57727066/
我正在将 parking_lot 添加到我的项目中,我希望我的依赖项也可以选择使用它来使用它。 例如,我知道 Tokio 有一个启用 parking_lot 的功能标志,但我想找到所有具有相似功能标志
我想使用 dijkstra来自 pathfinding crate 的函数: pub fn dijkstra( start: &N, neighbours: FN, succe
我有一个 Rust 项目,它在一个工作区中分为多个 crate 。其中一个 crate 是一个测试 crate,它包含用于其他 crate 中的单元和集成测试的实用程序。 在一个 crate 中,我定
此测试代码(playpen): use std::fmt::{Display, Formatter, Error}; struct MyLocalType; type MyResult = Resul
我不小心将我的私有(private)箱子发布到了 crates.io。我该如何删除它?我检查了 documentation但似乎没有办法删除已发布的 crate 。 最佳答案 预防 为避免将来出现这种
有什么比将所有内容都放在同一个模块中更好的方法吗? sub_module.rs pub struct GiantStruct { /* */ } impl GiantStruct { // t
我正在使用Cargo::Ops::Compile()函数使用Cargo::Ops::Compile()函数构建铁锈项目。我在一个json文件中也有一个定制目标。。如何使用目标文件将项目构建到正确目标?
使用hyper crate,我向端点发出了HTTP请求,然后尝试将响应主体传递给期望参数为Futures crate Stream的第三方库。 这导致类型错误。 Cargo.toml [depende
在示例中,hs 从 std 重新导出 HashSet。但它编译时没有错误或警告。为什么? #![no_std] pub use hs::HashSet; pub fn new() -> HashSet
在阅读官方书籍时,我偶然发现了包裹和 crate 。要创建一个新的“项目”,这就是我运行的: $ cargo new my-project Created binary (applicati
在示例中,hs 从 std 重新导出 HashSet。但它编译时没有错误或警告。为什么? #![no_std] pub use hs::HashSet; pub fn new() -> HashSet
我正在尝试编写一些调试辅助宏。所以我创建了一个 crate 来容纳所有这些,并使用 phase(plugin) 在外部引用该 crate : #[cfg(test)] #[phase(plugin)]
每次我看到这样的错误: error: associated constants are experimental (see issue #29646) ... = help: add #![featu
我对 crates.io 上托管的确切内容有点困惑(“ crate ”是指代这些内容的正确方式吗)?我的理解是 crate 是 Rust 中的一个编译单元,但是 crates 和 crates.io
我今天开始学习 Rust,但我卡在了 this step .我想在我的项目中使用 rand crate,所以我按照教程中的建议更新了我的 Cargo.toml: [package] name = "g
我有一个包含大量代码的箱子,所以我将其拆分为多个文件/模块。然而,一些模块有内部不安全的东西(例如原始指针),我需要向不同的模块公开,但我不想暴露给我的 crate 的用户。我该怎么做? 我能想到的唯
我有一个包含大量代码的箱子,所以我将其拆分为多个文件/模块。然而,一些模块有内部不安全的东西(例如原始指针),我需要向不同的模块公开,但我不想暴露给我的 crate 的用户。我该怎么做? 我能想到的唯
Rust 文档中讨论 patching 的部分解释了如何实现补丁,但它使用的所有示例都是为了“测试”和短期修复。我想做的是为我依赖的其中一个 crate 打一个补丁,它会增加它的子依赖性,然后我想在
This question already has answers here: Unable to read file contents to string - Result does not imp
我正在尝试在 Rust 中创建一个模块,然后从不同的文件中使用它。这是我的文件结构: matthias@X1:~/projects/bitter-oyster$ tree . ├── Cargo.lo
我是一名优秀的程序员,十分优秀!