Mam program, który zależy od biblioteki powiązanej z libboost 1.67, która jest zainstalowana w systemie. Po uruchomieniu mam błąd, libboost_system.so.1.58
który nie istnieje. LD_PRELOAD
i LD_LIBRARY_PATH
są rozbrojone.
lddtree
wykonanie nie pokazuje tej biblioteki jako zależności, ale ldd
tak.
Jak mogę śledzić, skąd biblioteka jest wymagana?
env
w tcshJeśli program ładuje libboost_system ręcznie za pomocą dlopen (), możesz być w stanie dowiedzieć się, gdzie to robi za pomocą ltrace, aby sprawdzić, czy wywołuje dlopen (), a może gdb ustawić punkt przerwania dla wywołań dlopen (), a następnie generowanie śledzenia stosu. (Zobacz także latrace .)
źródło