gpt4 book ai didi

linux - 如何找到我的 Rust 项目的哪一部分使用 GLIBC 2.18

转载 作者:太空狗 更新时间:2023-10-29 11:11:44 46 4
gpt4 key购买 nike

使用 cargo-tree,我可以看到我的项目依赖于 libc v0.2.62

$ cargo tree -p libc -i | grep libc
libc v0.2.62

但它实际上需要两个版本GLIB_2.14GLIBC2.18ldd错误信息如下:

/lib64/libc.so.6: version `GLIBC_2.18' not found
/lib64/libc.so.6: version `GLIBC_2.14' not found

我可以获取 GLIBC_2.14 但不能获取 GLIBC_2.18。所以我打算切换到旧版本的 Rust 或我使用的一些 crate 。我需要先找出哪个依赖于 GLIBC_2.18。谁能帮帮我?

最佳答案

要查看哪些符号引用了GLIBC_2.18,您可以使用eu-readelf:

$ eu-readelf -s /usr/bin/cargo  | grep -F @GLIBC_2.18
157: 0000000000000000 0 FUNC WEAK DEFAULT UNDEF __cxa_thread_atexit_impl@GLIBC_2.18 (19)

这个符号被 Rust 运行时本身用来为 TLS 变量实现析构函数(Drop 特性)。

如果这是关于让 Rust 在 Red Hat Enterprise Linux 上运行,你应该使用 Rust Toolset .它定期根据最新的上游版本重新构建基础,因此它的 Rust 版本大部分时间都是最新的。

关于linux - 如何找到我的 Rust 项目的哪一部分使用 GLIBC 2.18,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57743479/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com