gpt4 book ai didi

c - 如何修复 "version ` GLIBC_2.1 4' not found"错误?

转载 作者:太空狗 更新时间:2023-10-29 15:22:30 25 4
gpt4 key购买 nike

我在 Ubuntu 12.04 下编译了一个 C 程序,用它构建了一个 Debian 包,并想将它安装在运行 Debian Lenny 的服务器上。

我上次这样做(大约两个月前)成功了:我可以安装包并运行二进制文件。但是现在我收到以下错误消息:

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

除了将我的机器升级到 Ubuntu 12.4 之外,我们对代码所做的唯一重大更改是对 strdup() 的调用,为此我必须启用 _POSIX_C_SOURCE= 200809L 功能测试宏。

将服务器升级到最新的 Debian 版本不是我的首选,因为它不在我的直接控制之下。

我该如何解决这个问题?

最佳答案

我认为这里的关键信息是“升级我的机器”。那么,当这之前有效时,您是在 12.04 之前的版本上构建和打包?如果是这样,那么问题是 12.04 现在附带了更新版本的 libc(显然是 2.14),并且您的二进制文件现在记录了对该版本 libc 的依赖性。当您尝试在可能使用旧版本 libc 的 Lenny 上运行时,链接器检测到 Lenny 版本不支持 2.14 API,并失败。

我认为最好的方法可能是在 12.04 上进行开发和测试,然后当您想为特定的 Debian 版本创建包时,使用 pbuilder或类似于创建 debs。这将确保用于打包构建的库与目标平台相匹配。

关于c - 如何修复 "version ` GLIBC_2.1 4' not found"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830650/

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