Ldd сообщает обо всех зависимостях библиотеки? - PullRequest
0 голосов
/ 29 декабря 2018

Предположим, у нас есть общая библиотека с именем utils.so.Может содержать неопределенные символы.Предположим также, что ldd сообщает, что эта библиотека зависит от некоторых других библиотек:

$ ldd utils.so
  library1.so
  library2.so
  ...
  libraryN.so

(Кстати, возможно ли, что utils.so зависит не только от некоторых общих библиотек, но также от некоторых статических библиотек?)

Правда ли, что все неопределенные символы utils.so разрешаются библиотеками library1.so, library2.so, ..., libraryN.so?

И тот же вопрос о статических библиотеках- правда ли, что все неопределенные символы статической библиотеки разрешаются библиотеками, которые сообщает ldd?

1 Ответ

0 голосов
/ 29 декабря 2018

Правда ли, что все неопределенные символы utils.so разрешаются библиотеками library1.so, library2.so, ..., libraryN.so

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

И тот же вопрос о статических библиотеках

ldd имеетне имеет ничего общего со статическими библиотеками, он не может их читать или сообщать о них.Статические библиотеки не имеют зависимостей.Это более или менее тупые архивы объектов.

...