我在构建带有 rust 迹的可移植可执行文件时遇到问题.

在Ubuntu上运行一个简单地用cargo build构建的可执行文件会失败

./test: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./test)

带有rustc ... -C link-args=-static的建筑未能正确连接(输出为ld ./test):

ld: error in ./test(.eh_frame); no .eh_frame_hdr table will be created.

除了用一个旧的glibc版本构建一个更旧的系统之外,还有其他解决方法吗?

推荐答案

Glibc并不是静态链接的(尽管我们可能很喜欢,但它会不遗余力地防止这种情况发生).因此,系统库(libstd等)始终依赖于构建它们的glibc版本.这就是为什么mozilla使用的linux集群中的buildbots是/曾经是centos的旧版本.

https://github.com/rust-lang/rust/issues/9545https://github.com/rust-lang/rust/issues/7283

不幸的是,目前我认为除了确保在一个系统上构建一个比您将要部署到的更旧的glibc之外,没有其他解决方法.

Rust相关问答推荐

如何在rust中有条件地分配变量?

rust 蚀将动力特性浇到混凝土 struct 上是行不通的

无法在线程之间安全地发送future (&Q;)&错误

如何创建引用构造函数拥有的变量的对象?

将数组转换为HashMap的更简单方法

无法定义名为&new&的关联函数,该函数的第一个参数不是self

字段类型为Boxed的 struct 的生存期必须超过static

铁 rust ,我的模块介绍突然遇到了一个问题

在生存期内将非静态可变引用转换为范围内的静态可变引用

这是什么:`impl Trait for T {}`?

如何返回 struct 体中向量的切片

提取指向特征函数的原始指针

unwrap 选项类型出现错误:无法移出共享引用后面的*foo

Rust中的一生语法有什么作用?

部署Rust发布二进制文件的先决条件

从嵌入式 Rust 中的某个时刻开始经过的时间

类型判断模式匹配panic

如何在 use_effect_with_deps 中设置监听器内的状态?

当我不满足特征界限时会发生什么?

以下打印数组每个元素的 Rust 代码有什么问题?