我想使用自定义版本的musl构建静态Rust可执行文件。首先,我要使自己熟悉Rust的构建系统。
我接受了稍稍过时的docker-rust-muslGitHub项目,并更新了过时的URL。一切似乎都可以很好地与构建一起使用,但是当我想使用编译x86_64-unknown-linux-musl器进行编译时,找不到多层std包装箱:
root@beb234fba4af:/build# cat example.rs
fn main() { println!("hi!"); panic!("failed"); }
root@beb234fba4af:/build# rustc --target=x86_64-unknown-linux-musl example.rs
error[E0463]: can't find crate for `std`
|
= note: the `x86_64-unknown-linux-musl` target may not be installed
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)
实际上,即使构建过程中的输出表明已构建,/usr/local/lib/rustlib/该x86_64-unknown-linux-gnu目录也仅包含目录x86_64-unknown-linux-musl:
[...]
Building stage2 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-musl)
[...]
Run Code Online (Sandbox Code Playgroud)
但是,当涉及到安装步骤时x86_64-unknown-linux-gnu,无处可见:
[...]
Install std stage2 (x86_64-unknown-linux-gnu)
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rust-std-x86_64-unknown-linux-gnu'
std is standing …Run Code Online (Sandbox Code Playgroud)