gcc sysroot ошибка загрузки общих библиотек - PullRequest
0 голосов
/ 12 ноября 2018

У меня была старая 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

но я всегда получаю эту ошибку.

...