我在编译应用程序时拥有一个旧的Ubuntu 14.04。这是使用gcc-4.8.4和glibc 2.19版制成的。
现在我已经升级了Ubuntu,但是我想保留我的编译设置,但是显然gcc和glibc已更新。
我创建了一个非常简单的程序来验证我的glibc版本。
#include <stdio.h>
#include <gnu/libc-version.h>
int main (void) { puts (gnu_get_libc_version ()); return 0; }
如果我在新的操作系统中编译并执行该程序,则会得到2.17而不是以前的版本2.19。
为了获得相同的工具链,我在个人文件夹中创建了Ubuntu 14的debootstrap。如果我将chroot设置为此路径并进行编译,则可获得2.19版本,一切都很好。
xabi@Xlinux:~$ sudo chroot ~/ubuntu14/
root@Xlinux:/# gcc main.c -o main
root@Xlinux:/# ./main
2.19
我现在的问题是如何在不更改我所有系统的chroot的情况下进行编译?例如,我的IDE已安装在新系统中。
我尝试编译对所需gcc的调用:
~/ubuntu14/usr/bin/gcc main.c -o main
/home/xabi/ubuntu14/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/cc1: error while loading shared libraries: libcloog-isl.so.4: cannot open shared object file: No such file or directory
但我总是会收到此错误。