LINUX.ORG.RU

Сборка и LDD

 ,


0

1

Добрый день, коллеги!

Обнаружил такую особенность: Собираю программу (очень короткую) такой инструкцией: g++ job.cpp -o job -L/opt/PostgreSQL-9.4.4/lib -lpq -I/opt/PostgreSQL-9.4.4/include

Ничего лишнего она не использует. те только: #include «libpq-fe.h» и что-то типа #include <iostream> и тому подобное...

Однако LDD говорит:

ldd job linux-vdso.so.1 => (0x00007fff5c6a7000) libpq.so.5 => /usr/lib/libpq.so.5 (0x00007fce9f091000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fce9ed8d000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fce9eb76000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fce9e7ae000) libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fce9e550000) libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fce9e173000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fce9dea4000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fce9dca0000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fce9da61000) libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fce9d810000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fce9d5f3000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fce9d2ee000) /lib64/ld-linux-x86-64.so.2 (0x00007fce9f2ca000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fce9d0ea000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fce9ced1000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fce9cca8000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fce9caa0000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fce9c89c000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fce9c681000) liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fce9c472000) libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fce9c257000) libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fce9c018000) libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007fce9bd5a000) libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007fce9badc000) libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fce9b8d4000) libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fce9b651000) libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fce9b3b6000) libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fce9b182000) libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007fce9af6d000) libtasn1.so.3 => /usr/lib/x86_64-linux-gnu/libtasn1.so.3 (0x00007fce9ad5c000) libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fce9ab3b000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fce9a936000) libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007fce9a70d000) libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fce9a4fe000) libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fce9a2b6000) libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fce9a003000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fce99dc9000)

Отуда тут libssl и все, что с ним связано???

Потому что ldd показывает рекурсивно, для твоего бинарника будет readelf -d

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

В Gentoo есть lddtree, который показывает всю иерархию зависимых библиотек в виде дерева. Он помог мне сэкономить много нервов в своё время :-)

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

Спасибо! Крутая штука, в *ubuntu'ах пакет называется pax-utils.

EXL ★★★★★ ()

LDD

Laziness-driven development?

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