ניצן די "ldd" באַפֿעלן אין לינוקס

די לדד באַפֿעל קענען זיין געניצט צו ווייַזן איר די שערד לייברעריז פארלאנגט דורך קיין געגעבן פּראָגראַם.

דעם איז נוצלעך פֿאַר אַרבעט אויס ווען עס איז אַ פעלנדיק דעפּענדענסי און קענען זיין געוויינט צו רשימה פעלנדיק פאַנגקשאַנז און אַבדזשעקס.

ldd Command Syntax

דאָס איז די ריכטיק סינטאַקס ווען איר נוצן די לדד באַפֿעל:

ldd [OPTION] ... FILE ...

דאָ זענען די בנימצא לדד באַפֿעל סוויטשאַז אַז קענען זיין ינסערטאַד אין די [אָפּציע] אָרט אין די אויבן באַפֿעל:

- פּראַוויידינג דרוק הילף און אַרויסגאַנג - ווערסיע פּרינטינג ווערסיע אינפֿאָרמאַציע און אַרויסגאַנג -ד, דאַטאַ-רעלאָסס פּראָצעס דאַטן רילאָוקיישאַנז -ר, - פונקטיאָן-רעלאָסס פּראָצעס דאַטן און פונקציאָנירן רילאָוקיישאַנז -ו, --וניוזד דרוק אַניוזד דירעקט דיפּענדאַנסיז -v, --verbose דרוק אַלע אינפֿאָרמאַציע

ווי צו נוצן די לאַדד קאַמאַנד

איר קענען נוצן די פאלגענדע באַפֿעל צו באַקומען מער אינפֿאָרמאַציע פון ​​קיין לדד באַפֿעל:

ldd -v / path / to / program / executable

דער רעזולטאַט ווייזט ווערסיע אינפֿאָרמאַציע ווי געזונט ווי די פּאַטס און ווענדט צו די שערד לייברעריז, אַזאַ ווי:

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

אויב די SO טעקע טוט נישט עקסיסטירן בייַ אַלע, איר קענען געפֿינען די פעלנדיק לייברעריז ניצן די ווייַטערדיק באַפֿעל:

ldd -d path / to / program

דער רעזולטאַט איז ענלעך צו די פאלגענדע:

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.סאָ .2 (0 קס00007 פד 0 ק 65 פד 000)

וויכטיק: קיינמאָל לויפן די ldd באַפֿעל קעגן אַ אַנריסטאַסט פּראָגראַם זינט די באַפֿעל קען פאקטיש ויספירן עס. דאָס איז אַ סאַפער אָלטערנאַטיוו אַז ווייזט נאָר די דירעקט דיפּענדאַנסיז און ניט די גאנצע דעפּענדענסי בוים: אָבדזשדומפּ -פּ / דרך / צו / פּראָגראַם | grep NEEDED .

ווי צו געפינען די פּאַט צו אַ אַפּלאַקיישאַן

איר האָבן צו צושטעלן די פול וועג צו אַ אַפּלאַקיישאַן אויב איר ווילן צו געפֿינען זייַן דעפּענדענסיעס מיט לדד, וואָס איר קענען טאָן אַ פּלאַץ פון וועגן.

פֿאַר בייַשפּיל, דאָס איז ווי איר'ד געפֿינען דעם וועג צו פירעפאָקס :

געפינען / נאָמען פירעפאָקס

דער פּראָבלעם מיט די געפינען באַפֿעל , אָבער, איז אַז עס וועט ניט בלויז רשימה די עקסעקוטאַבלע אָבער אומעטום אַז פירעפאָקס איז ליגן, ווי דאָס:

דעם צוגאַנג איז אַ ביסל פון אַ אָוווערקיל און איר קען דאַרפֿן צו נוצן די סודאָ באַפֿעל צו ופהיטן דיין פּריווילאַדזשאַז, אַנדערש איר זענען מסתּמא צו באַקומען גורל פון דערלויבעניש געלייקנט ערראָרס.

עס אַנשטאָט פיל גרינגער צו נוצן די וואָכיס באַפֿעל צו געפֿינען אַ דרך פון אַפּלאַקיישאַן:

whereis firefox

דעם מאָל די פּראָדוקציע זאל קוקן ווי דאָס:

/ וסר / בין / פירעפאָקס

/ עטק / פירעפאָקס

/ וסר / ליב / פירעפאָקס

כל איר דאַרפֿן צו טאָן איצט צו געפינען די שערד לייברעריז פֿאַר פירעפאָקס איז טיפּיש די ווייַטערדיק באַפֿעל:

ldd / usr / bin / firefox

דער רעזולטאַט פון די באַפֿעל וועט זיין עפּעס ווי דאָס:

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)
/ ליב 64 / לד-לינוקס-קס86-64.סאָ .2 (0 קס00007פעב 99397000)

די לינוקס-וודסאָ.סאָ .1 איז דער נאָמען פון דער ביבליאָטעק און די העקס נומער איז דער אַדרעס ווו די ביבליאָטעק וועט זיין לאָודיד אין זכּרון.

איר וועט באַמערקן אויף פילע פון ​​די אנדערע שורות אַז דער => סימבאָל איז נאכגעגאנגען דורך אַ דרך. דעם איז דער דרך צו די פיזיש ביינערי; די העקס נומער איז די אַדרעס ווו די ביבליאָטעק וועט זיין לאָודיד.