У меня была старая 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; }
Если я скомпилирую и выполню эту программу в моем новом O.S, я получу 2.17 вместо 2.19, которая была моей предыдущей версией.
Чтобы получить тот же набор инструментов, я создал debootstrap Ubuntu 14 в своей личной папке. Если я установлю 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
но я всегда получаю эту ошибку.