../
静态链接Go和Rust
================

2021-05-21

Go和Rust有个很好用的特性:二进制部署。但是在Linux上,编译出来的二进制文件还是依
赖glibc。要是开发机和部署机上的glibc版本不一致就麻烦了。所以,如果要直接二进制
部署,glibc也要静态链接上。

## Go

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

## Rust

Rust这里,我在尝试静态链接glibc的时候佩刀了奇怪的问题,翻了好久StackOverflow也
没有解决。所以我决定改成用musl。比如说在Arch Linux上就这么用:

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

不过因为用了musl,有时候可能会产生兼容问题。



--------------------------------------------------------------------
Email: i (at) mistivia (dot) com