Привязать общую библиотеку к другой версии libc - PullRequest
2 голосов
/ 15 января 2010

У меня есть общая библиотека linux (.so), скомпилированная с определенной версией libc (GLIBC2.4), и мне нужно использовать ее в системе с другой версией libc. У меня нет источников для рассматриваемой библиотеки, поэтому я не могу перекомпилировать для новой системы. Возможно ли как-то изменить зависимости в этой библиотеке на другой libc?

Ответы [ 3 ]

3 голосов
/ 15 января 2010

Если вам нужен .so в системе с более старым glibc, вам потребуется исходный код и перекомпилируйте / перекомпоновайте его с более старым glibc. Альтернативой является установка требуемого glibc в старой системе в месте, отличном от места по умолчанию, и настройка LD_LIBRARY_PATH для исполняемого файла, для которого это необходимо .so

Если есть более новый glibc, то обычно это не должно быть проблемой, поскольку glibc имеет тенденцию быть обратно совместимыми.

3 голосов
/ 10 декабря 2010

Если ваша библиотека действительно не использует измененные (маловероятные) интерфейсы, вы можете просто шестнадцатеричные ссылки на версии в результирующем файле .so. В любом случае они все текстовые.

1 голос
/ 15 января 2010

Лучшее, что вы можете сделать, - это скомпилировать старую версию glibc для вашей системы, а затем собрать приложение с этим glibc и вашей общей библиотекой. Хотя некрасиво ...

...