在 Travis 上交叉编译简单 crate 时找不到链接器 cc CI
Linker cc not found when cross-compiling simple crate on Travis CI
作为我的一个项目的一部分,我必须在 Linux 上交叉编译一个从 x86_64
到 i686
的 Rust crate。我目前为此使用 Travis CI,带有一个简单的 Hello World 箱子(默认的二进制箱子)。相关矩阵条目的我的 Travis CI 配置是:
# ...
matrix:
include:
# ...
- os: linux
rust: 1.30.0
before_script:
- sudo apt-get update
- sudo apt-get install -y libc6-dev:i386
env: TARGET=i686-unknown-linux-gnu
# ...
script:
- rustup target install $TARGET
- cargo build --release --target=$TARGET
不幸的是,当我将此配置推送到 Travis CI 时,我得到 build error:
$ cargo build --release --target=$TARGET
Compiling test-rust-deploy-releases v0.1.0 (/home/travis/build/arnavb/test-rust-deploy-releases)
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: aborting due to previous error
error: Could not compile `test-rust-deploy-releases`.
To learn more, run the command again with --verbose.
The command "cargo build --release --target=$TARGET" exited with 101.
我该如何解决这个问题?
好吧,经过试验和更多谷歌搜索后,我将我的 apt 安装命令更改为:
sudo apt-get install -y gcc-4.8 cpp-4.8 gcc-multilib
(前两个是第三个未满足的依赖项,必须手动安装)。
现在构建运行正常。
作为我的一个项目的一部分,我必须在 Linux 上交叉编译一个从 x86_64
到 i686
的 Rust crate。我目前为此使用 Travis CI,带有一个简单的 Hello World 箱子(默认的二进制箱子)。相关矩阵条目的我的 Travis CI 配置是:
# ...
matrix:
include:
# ...
- os: linux
rust: 1.30.0
before_script:
- sudo apt-get update
- sudo apt-get install -y libc6-dev:i386
env: TARGET=i686-unknown-linux-gnu
# ...
script:
- rustup target install $TARGET
- cargo build --release --target=$TARGET
不幸的是,当我将此配置推送到 Travis CI 时,我得到 build error:
$ cargo build --release --target=$TARGET
Compiling test-rust-deploy-releases v0.1.0 (/home/travis/build/arnavb/test-rust-deploy-releases)
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: aborting due to previous error
error: Could not compile `test-rust-deploy-releases`.
To learn more, run the command again with --verbose.
The command "cargo build --release --target=$TARGET" exited with 101.
我该如何解决这个问题?
好吧,经过试验和更多谷歌搜索后,我将我的 apt 安装命令更改为:
sudo apt-get install -y gcc-4.8 cpp-4.8 gcc-multilib
(前两个是第三个未满足的依赖项,必须手动安装)。
现在构建运行正常。