rust的musl toolchain

发布时间 2023-12-01 12:06:20作者: 半山随笔

rust项目常常会使用musl作为编译target,这个时候就会使用musl的工具链。musl toolchain安装在$HOME/.rustup/toolchain下面。通常可以用rustup 安装,比如:

rustup install stable-unknown-linux-musl

也可以使用rust官方提供的脚本:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable-unknown-linux-musl

如果default使用musl作为toolchain,通常会报一下符号找不到的错误,甚至cargo命令都无法启动。可以使用alpine作为编译环境。alpine对musl toolchain的支持较好。

musl libc的源码在https://git.musl-libc.org/cgit/musl/。

如果要使用musl静态链接,可以按照如下命令:

 export RUSTFLAGS='-C target-feature=+crt-static -C link-self-contained=yes'
 cargo build --release --target aarch64-unknown-linux-musl