Конфликт версий библиотек

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Конфликт версий библиотек

Сообщение ya_vanka » 08.06.2015 15:05:13

Добрый день.

При запуске программы (под Linux) на одной машине выдается ошибка:
/lib32/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib/libglib-2.0.so.0)

Посмотрел через ldd библиотека libglib-2.0.so.0 используется не внешними библиотеками (как я думал сначала), а самим исполняемым файлом.
Возможности обновить библиотеку на машине нет. Там стоит GLIBC_2.13.

Какие есть способы решить эту проблему?
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

Re: Конфликт версий библиотек

Сообщение MiniQ » 08.06.2015 16:03:46

Перелинковать под version `GLIBC_2.15' есть возможность?
MiniQ
новенький
 
Сообщения: 81
Зарегистрирован: 28.01.2013 16:31:55

Re: Конфликт версий библиотек

Сообщение ya_vanka » 08.06.2015 16:36:06

Перелинковать под version `GLIBC_2.15' есть возможность?


Вы, видимо, имели в виду Перелинковать под version `GLIBC_2.13'?

Видимо так и придется. Осталось разобраться где найти более старую версию.
Потом нужно ли делать даунгрейд системной библиотеки или можно линкеру указать напрямую какую версию использовать?
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

Re: Конфликт версий библиотек

Сообщение MiniQ » 08.06.2015 16:42:04

да, это и имел ввиду, сорь.
я бы глянул исходники юнита, требующего GLIBC и попробовал понизить требования к версии.

Добавлено спустя 12 минут 1 секунду:
в исходниках не нашел ограничений на версию 2.15 (только >2).
значит надо линковать на машине с нужной версией glibc.
Кстати попробуйте собрать на целевой машине.
MiniQ
новенький
 
Сообщения: 81
Зарегистрирован: 28.01.2013 16:31:55

Re: Конфликт версий библиотек

Сообщение ya_vanka » 09.06.2015 13:13:19

На целевой машине возможности собрать как раз и нет.

Так все же есть возможность линкеру указать версию/путь к библиотеке?
Или только установкой/даунгрейдом системной библиотеки?
ya_vanka
новенький
 
Сообщения: 89
Зарегистрирован: 07.08.2013 14:28:41

Re: Конфликт версий библиотек

Сообщение Sergei I. Gorelkin » 09.06.2015 17:42:38

Версию указать нельзя. Собственно, это версии не библиотеки, а функции. Т.е. в одной .so может быть несколько версий одной и той же ф-ции. Линкер всегда связывает с той, что помечена флагом "текущая". И соответственно, у каждой функции может быть своя "текущая" версия.

Пути к библиотекам указать можно, но там должны находиться все библиотеки, от которых зависит проект (включая содержимое dev-пакетов), а не какая-то одна из них. Иначе получится каша. Иными словами - обычная кросс-компиляция, только целевой процессор тот же самый и поэтому можно обойтись без отдельных binutils.

Для управления путями используются ключи командной строки -Xd, -XR, -Fl. Какие именно - подбирается опытным путем...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1395
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Рейтинг@Mail.ru