【发布时间】:2015-01-30 00:55:40
【问题描述】:
我有一个使用 ldd 版本在本地编译的应用程序
(Ubuntu EGLIBC 2.15-0ubuntu10.4) 2.15 我需要在带有 ldd version 2.12 的服务器中运行。因为它是在 QT 框架中构建的,并且我没有 root 访问权限来安装框架或升级 libc.so.6,所以我需要在我的机器上安装一个较旧的 glibc 来编译,就像在这个 post 中一样。从here 下载glibc-2.11.2.tar.gz 后,尝试使用命令./configure --prefix=/usr/oldlibc 安装它,它显示以下错误:
/bogdan/Downloads/safe/csu/crti.o
/tmp/ccHNBWLa.s: Assembler messages:
/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive
/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive
make[2]: *** [/home/bogdan/Downloads/safe/csu/crti.o] Error 1
make[2]: Leaving directory `/home/bogdan/Downloads/glibc-2.11/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/home/bogdan/Downloads/glibc-2.11'
make: *** [all] Error 2
我该怎么做才能正确安装libc.so.6?
【问题讨论】:
-
静态构建您的应用程序?不要像在正在运行的系统上那样降级 glibc。您可以在 vm 上安装 ubuntu10.04 并在那里构建。
-
@ElliottFrisch,我已经尝试过了,但是这次我在安装 opencv2 时遇到了问题。我没有找到任何有 opencv2 的存储库
-
您的问题中未提及,但您可以获取源代码并构建它。降级 glibc 会破坏你拥有的任何 opencv2。
-
为什么,确切地说,您认为您需要降级 glibc?这绝不是必要的。
-
@duskwuff,因为我的计算机上的 gnu c 库与服务器上的库之间存在兼容性问题。目前,当我尝试在服务器上执行程序时,它给了我一个错误。我现在无法访问服务器,但错误是
glibc version 15 is needed to run something
标签: linux ubuntu shared-libraries glibc