rust的musl toolchain
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