我正在编译 Rust 代码以用作 CLI。
我希望它可以安装在尽可能广泛的x86_64-unknown-linux-gnu基础系统上,特别是 Ubuntu 系统。
我使用 docker 基础映像FROM rust:latest进行构建,但此编译主机具有 glibc v2.29。
当我尝试在另一个 Debian 系统上运行二进制文件时,(Debian GLIBC 2.28-10) 2.28它退出并出现错误:
clix: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by clix)
Run Code Online (Sandbox Code Playgroud)
那么这是否意味着我需要在旧版 Ubuntu ( ubuntu:16.04) 上进行编译才能支持 Ubuntu 16 及更高版本?
有没有一种替代方案可以让我rust:latest在旧的 Ubuntu 操作系统上进行编译并让我的二进制文件工作?
有关的:
那么这是否意味着我需要在旧的 Ubuntu (ubuntu:16.04) 上进行编译才能支持 Ubuntu 16 及更高版本?
这是最简单的解决方案。
有没有一种替代方案可以让我在 rust:latest 上进行编译并让我的二进制文件在旧的 Ubuntu 操作系统上工作?
是的:您可以自己构建一个 Linux 到旧版 Linux 的交叉编译器,并使用它在rust:latest. 这并不是一件微不足道的事情,通常“基于旧版本构建”是更直接的解决方案。