Menggunakan ldd arahan untuk menunjukkan perpustakaan yang dikongsi yang diperlukan oleh mana-mana program yang diberikan - berguna untuk bekerja apabila terdapat pergantungan yang hilang. Perintah juga menyenaraikan fungsi dan objek yang hilang.
Sintaks Perintah ldd
Perhatikan sintaks yang betul untuk arahan ldd untuk mengelakkan ralat:
ldd OPTION … FILE …
Gunakan satu atau lebih suis perintah ldd yang ada, dimasukkan ke dalam OPTION tempat dalam arahan di atas: --help | cetak bantuan ini dan keluar --version | maklumat versi cetak dan keluar -d, --data-relocs | proses pemindahan data -r, --fungsi-relocs | memproses data dan penempatan semula fungsi -u, --unused | cetak kebergantungan langsung yang tidak digunakan -v, --verbose | cetak semua maklumat Jalankan perintah berikut untuk mendapatkan maklumat lanjut tentang program: $ ldd -v / path / to / program / executable
Output menunjukkan maklumat versi serta laluan dan alamat ke perpustakaan yang dikongsi, seperti ini: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Jika fail SO tidak wujud sama sekali, anda boleh mencari perpustakaan yang hilang dengan menggunakan arahan berikut: $ ldd -d laluan / ke / program
Output serupa dengan yang berikut: 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)
Jangan sekali-kali jalankan arahan ldd terhadap program yang tidak dipercayai kerana ldd sebenarnya boleh melaksanakannya. Sebaliknya, gunakan alternatif yang lebih selamat yang menunjukkan hanya kebergantungan langsung dan bukan keseluruhan pokok pergantungan: $ objdump -p / path / to / program | grep PERLU Anda perlu menyediakan jalan penuh ke aplikasi jika anda ingin mencari dependensi dengan ldd, yang boleh anda lakukan dalam beberapa cara. Sebagai contoh, inilah cara anda mencari laluan ke Firefox: $ find / -name firefox
Masalah dengan arahan mencari, bagaimanapun, adalah bahawa ia bukan sahaja akan menyenaraikan executable tetapi di mana-mana yang terletak di Firefox, seperti ini: Pendekatan ini agak berlebihan dan anda mungkin perlu menggunakan perintah sudo untuk meningkatkan keistimewaan anda, jika tidak, anda mungkin mendapat banyak kesalahan yang ditolak kebenaran. Sebaliknya lebih mudah untuk menggunakan arahan whereis untuk mencari jalan aplikasi: $ whereis firefox
Kali ini output mungkin kelihatan seperti ini: / usr / bin / firefox / etc / firefox / usr / lib / firefox Apa yang perlu anda lakukan sekarang untuk mencari perpustakaan yang dikongsi untuk Firefox adalah menaip perintah berikut: $ ldd / usr / bin / firefox
Output dari arahan akan menjadi seperti ini: 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) Linux-vdso.so.1 adalah nama perpustakaan dan nombor hex ialah alamat di mana perpustakaan akan dimuatkan ke ingatan. Anda akan melihat pada banyak baris lain bahawa simbol = = diikuti dengan jalan. Inilah jalan kepada binari fizikal; nombor hex ialah alamat di mana pustaka akan dimuatkan. Bagaimana Menggunakan Perintah ldd
Cara Cari Laluan untuk Aplikasi




