在ubuntu上安装glibc 11精确(12.04)

时间:2014-12-01 22:05:14

标签: linux ubuntu shared-libraries glibc

我有一个使用ldd版本本地编译的应用程序 我需要在ldd (Ubuntu EGLIBC 2.15-0ubuntu10.4) 2.15的服务器上运行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

1 个答案:

答案 0 :(得分:0)

  

我有一个使用ldd版本

本地编译的应用程序

说明ldd版本是错误的。 ldd glibc部分,而glibc版本会让您感到悲痛。 ldd本身只有 来处理任何事情。

  

/tmp/ccHNBWLa.s: Error: open CFI at the end of file; missing .cfi_endproc directive

这种情况正在发生,因为无法使用系统中的新glibc-2.11构建旧版gcc

您可以破解glibc来源并修复该问题,您可以构建并安装较旧的gcc并使用 it 来构建glibc-2.11,或者您可以设置chroot环境,并在默认位置安装旧的glibc。

chroot解决方案可能是最简单的,因为您只需将预先构建的(较旧的)软件包安装到其中即可。

另一个“简单”的选择是在虚拟机中构建所有内容。