奇想斋

关于 文章 友链 订阅

Go和Rust的静态链接

2021-10-16

Go和Rust都有一个“卖点”,就是可以直接从一份代码直接编译出各个操作系统上的二进制。但是在Linux平台上,编译出的二进制还是依赖glibc,如果编译机和部署机器上的glibc版本不同就可能无法运行,所以需要把glibc也静态链接进来。

Go

go build -tags netgo -ldflags '-extldflags "-static"'

Rust

Rust的话在尝试静态链接glibc的时候碰到了一些奇怪的依赖问题,查了很久的stackoverflow也没有解决,于是改成使用musl:

sudo pacman -S musl
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl

Powered by Pandoc ©️ 2017-2021 奈卜拉
欢迎致信 nebula_moe@outlook.com