Defnyddio'r "ldd" Command yn Linux

Gellir defnyddio'r gorchymyn ldd i ddangos i chi y llyfrgelloedd a rennir sy'n ofynnol gan unrhyw raglen benodol.

Mae hyn yn ddefnyddiol ar gyfer gweithio allan pan fydd dibyniaeth ar goll a gellir ei ddefnyddio i restru swyddogaethau a gwrthrychau coll.

Ldd Command Syntax

Dyma'r cystrawen gywir wrth ddefnyddio'r gorchymyn ldd:

ldd [OPSIWN] ... FFILE ...

Dyma'r switsys gorchmynion ldd sydd ar gael y gellir eu mewnosod i'r fan [DEWISIAD] yn y gorchymyn uchod:

- helpu i argraffu'r help a'r ymadawiad hwn - gwybodaeth fersiwn argraffu ac adleoli data proses broses adael -d, --data-relocs -r, - ffasiwn-adleoli data proses a adleoli ffwythiannau -u, - defnyddiwyd argraffiadau dibynadwy uniongyrchol heb eu defnyddio -v, --verbose argraffwch yr holl wybodaeth

Sut i Defnyddio'r Ldd Command

Gallwch ddefnyddio'r gorchymyn canlynol i gael mwy o wybodaeth o unrhyw ldd command:

ldd -v / path / to / program / executable

Mae'r allbwn yn dangos gwybodaeth fersiwn yn ogystal â'r llwybrau a'r cyfeiriadau i'r llyfrgelloedd a rennir, fel hyn:

ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Os nad yw'r ffeil SO yn bodoli o gwbl, gallwch ddod o hyd i'r llyfrgelloedd coll sy'n defnyddio'r gorchymyn canlynol:

ldd -d path / to / program

Mae'r allbwn yn debyg i'r canlynol:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

Pwysig: Peidiwch byth â rhedeg y gorchymyn ldd yn erbyn rhaglen anhysbys gan y gallai'r gorchymyn ei weithredu mewn gwirionedd. Mae hon yn ddewis mwy diogel sy'n dangos dim ond y dibyniaethau uniongyrchol ac nid y goeden dibyniaeth gyfan: objdump -p / path / to / program | ANGEN ANGEN .

Sut i ddod o hyd i'r Llwybr i Gais

Rhaid ichi ddarparu'r llwybr llawn i gais os ydych am ddod o hyd i'w ddibyniaethau gyda ldd, y gallwch chi ei wneud mewn sawl ffordd.

Er enghraifft, dyma sut y byddech chi'n dod o hyd i'r llwybr i Firefox :

darganfyddwch / -name firefox

Y broblem gyda'r gorchymyn dod o hyd , fodd bynnag, yw y bydd nid yn unig yn rhestru'r gweithredadwy ond ym mhobman y mae Firefox wedi'i leoli, fel hyn:

Mae'r dull hwn yn rhywfaint o or-lwythi ac efallai y bydd angen i chi ddefnyddio'r gorchymyn sudo i godi eich breintiau, neu os ydych chi'n debygol o gael llawer o ganiatâd gwadu gwadu.

Yn hytrach mae'n llawer haws defnyddio'r gorchymyn lle i ddod o hyd i lwybr y cais:

whereis firefox

Y tro hwn gallai'r allbwn edrych fel hyn:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Y cyfan sydd raid i chi ei wneud nawr i ddod o hyd i'r llyfrgelloedd a rennir ar gyfer Firefox yw math y gorchymyn canlynol:

ldd / usr / bin / firefox

Bydd yr allbwn o'r gorchymyn yn rhywbeth fel hyn:

linux-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

Y linux-vdso.so.1 yw enw'r llyfrgell a'r rhif hecs yw'r cyfeiriad lle bydd y llyfrgell yn cael ei lwytho i gof.

Byddwch yn sylwi ar lawer o'r llinellau eraill y mae'r = = symbol yn dilyn llwybr. Dyma'r llwybr i'r deuaidd corfforol; y rhif hecs yw'r cyfeiriad lle bydd y llyfrgell yn cael ei lwytho.