LINUX.ORG.RU

ldd


0

0

Посоветуйте, пожалуйста, чего бы такого умного прочитать про ldd.

Конкретная проблема. В приложении один .so использует другой .so (такая вот иерархическая зависимость). В строке линкера это указывается безо всякого пути, т.е при сборке b.so написано просто b1.o b2.o a.so (а не, к примеру, -la.so). Все это замечательно собирается и работает. Но при попытке повторить фокус на другой системе выяснилось, что b.so не видит a.so, который лежит рядышком. В выводе ldd b.so значится a.so => not found.

В обеих системах LD_LIBRARY_PATH отсутствует, в ld.so.conf ничего интересного нет.

Куда копать?

anonymous

Ответ на: комментарий от anonymous

Нет, команды линкера строго одинаковы. Различны версии линкеров и компиляторов: первая система RH9, а вторая FC4. На FC4 все собирается (т.е. ld библиотеку, насколько я понимаю, видит), но не запускается.

anonymous
()

Вывод то один напрашивается - один линкер смотрит в текущем каталоге, а другой нет. Поставь -L. и всё соберётся.

Не понимаю сути проблемы собственно.

ms
()
Ответ на: комментарий от ms

С выводом согласен. Конкретная проблема была примерно так и решена.

Меня несколько шокировало собственное непонимание особенностей работы динамического линкера, и я спросил, где бы про эти самые особенности поподробнее почитать. Суть именно в этом.

anonymous
()
Ответ на: комментарий от anonymous

Скорее всего это могут быть магические "очень нужные" патчи от RH и т.д. Эти красавцы иногда делают очень полезные вещи которые не понятны другим людям акромя их :)

ms
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.