如何解决一个“版本`GLIBC_2.14' 未找到”的错误?(How do I fix a

2019-09-17 15:58发布

我编译的Ubuntu 12.04下一个C程序,建立了一个Debian包出来的,并希望运行Debian莱尼在服务器上安装它。

上次我做了(大约两个月前),它的工作:我可以安装包并运行二进制文件。 但现在我得到以下错误信息:

(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是不是我的首选,因为它不是我的直接控制之下。

如何解决这个问题?

Answer 1:

我觉得这里的信息的关键位为升级我的机器“。 所以,当这个工作之前,你正在构建和东西比12.04更早包装? 如果是这样,那么问题是,现在12.04附带的libc的新版本(显然2.14),和您的二进制现在可以记录该版本的libc的依赖。 当您尝试莱尼,这可能使用的libc的旧版本上运行,链接器检测到莱尼版本不支持的API 2.14和失败。

我认为最佳的方案可能是做你的开发和测试12.04,然后当你想为特定的debian发行创建软件包,使用pbuilder或类似的创建deb包。 这将确保用于包装构建库的目标平台相匹配。



文章来源: How do I fix a “version `GLIBC_2.14' not found” error?