最近、Rustでコマンドラインツールを書く機会があったのだが、完成物をローカル環境でビルドし、実際の環境で叩いてみたところlibc.soやlibssl.soのバージョンが異なると言われてしまい、実行することができなかった。 もちろん実行先の環境と同じ環境を用意してビルドしたり、もし実行先に不足するライブラリが存在するなら事前にインストールしておけば良いだけではある。 ただ、そのツール自体はいろいろな環境で手軽に使いたいと考えていたので、適当な環境でビルドしたコマンドバイナリをコピーするだけで利用可能な状態にするのが理想ではあった。 そのためいろいろと調べてみたところRustBookのAdvancedLinkingの節で紹介されている方法を使えば「OSはLinux (and マシンアーキテクチャが同一)」という制約はつくが、動的ライブラリへの依存がなく、かなりポータブルなバイナリが作成できそ
