2014-12-01 154 views
1

我有一个应用程序在本地编译ldd版本 (Ubuntu EGLIBC 2.15-0ubuntu10.4) 2.15,我需要在ldd version 2.12的服务器上运行。由于它是在QT框架中构建的,并且我没有root权限来安装框架或升级libc.so.6,所以我需要在我的机器上安装一个较旧的glibc,以便编译,如此post。从下载hereglibc-2.11.2.tar.gz后尝试使用命令./configure --prefix=/usr/oldlibc安装它,它会显示以下错误:在ubuntu上安装glibc 11精确(12.04)

/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

静态构建应用程序?不要在运行的系统上降级glibc。你可以在vm上安装ubuntu10.04并在那里建立。 – 2014-12-02 06:35:20

+0

@ElliottFrisch,我已经试过了,但这次我有intalling opencv2问题。我没有发现任何存储库有opencv2 – courage 2014-12-02 07:04:18

+0

在你的问题中没有提到,但你可以得到的源代码,并建立它。降级glibc会破坏你拥有的任何opencv2。 – 2014-12-02 07:09:56

回答

0

我有LDD版本

你错了,在陈述ldd版本本地编译一个应用程序。该lddglibc一部分,它的glibc版本,是造成你的悲伤。该ldd本身什么做任何事情在这里。

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

发生这种情况,因为旧glibc-2.11不能与你有你的系统上的新gcc建造。

你能砍上glibc源和解决这个问题,你可以建造和安装旧gcc并使用建立glibc-2.11,或者你可以建立一个chroot环境安装在默认的地方老的glibc。

chroot的解决方案可能是最容易的,因为你可以预先构建的(旧的)包只需安装进去。

另一个“容易”的另一种方法是在一个虚拟机建立的一切。