【问题标题】:How do I fix a "version `GLIBC_2.14' not found" error?如何修复“未找到版本‘GLIBC_2.14’”错误?
【发布时间】:2012-06-05 12:52:03
【问题描述】:

我在 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 版本不是我的首选,因为它不受我的直接控制。

我该如何解决这个问题?

【问题讨论】:

    标签: c shared-libraries glibc


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 1970-01-01
      • 2017-07-14
      • 2017-09-28
      • 2014-10-08
      • 2020-04-20
      • 2018-11-06
      • 2012-10-25
      • 2018-10-09
      相关资源
      最近更新 更多