Linux: Как изменить имя разделяемой библиотеки в динамическом разделе двоичного файла ELF - PullRequest
3 голосов
/ 29 июля 2010

У меня есть общая библиотека с soname: libfoo.so

Как мне связать мой бинарный файл с libfoo.so так, чтобы имя общей библиотеки в разделе ELF моего бинарного файла было: libfoo5.so?

Я попытался создать символическую ссылку: libfoo5.so -> libfoo.so, а затем связал мою библиотеку следующим образом:

g++ ... -o mybinary *.o -Lpath -lfoo5

Однако при печатидинамический раздел в моем двоичном файле ELF, он читает:

readelf -d mybinary

Я все еще получаю:

Shared library: [libfoo.so]

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Обычно вы делаете это при создании общей библиотеки. Существует параметр компоновщика, называемый «soname», который устанавливает его.

Я не знаю, можете ли вы отредактировать его после сборки, но если это возможно, он, вероятно, включен в пакет под названием "elfutils". Этот пакет содержит несколько программ, предназначенных для работы с объектными файлами ELF.

1 голос
/ 29 июля 2010

Файл libfoo5.so, вероятно, является символической ссылкой на фактический libfoo.so или чем-то в этом роде. Что ldd говорит о вашем бинарном файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...