Saya ingin melihat fungsi yang diekspor dari perpustakaan bersama di Linux.
Perintah apa yang memungkinkan saya melakukan ini?
(Pada Windows saya menggunakan program tergantung)
linux
export
shared-libraries
ljbade
sumber
sumber
Jawaban:
Yang Anda butuhkan adalah
nm
dan-D
opsinya:Sumbol yang diekspor ditunjukkan oleh a
T
. Simbol yang diperlukan yang harus dimuat dari objek bersama lainnya memiliki aU
. Perhatikan bahwa tabel simbol tidak hanya menyertakan fungsi, tetapi juga mengekspor variabel.Lihat
nm
halaman manual untuk informasi lebih lanjut.sumber
nm
tanpa-D
flag.objdump -T *.so
mungkin juga melakukan pekerjaan itusumber
Pada MAC, Anda perlu menggunakan
nm *.o | c++filt
, karena tidak ada-C
opsi dinm
.sumber
Di antara alat-alat lain yang telah disebutkan Anda dapat menggunakan juga
readelf
( manual ). Ini mirip denganobjdump
tetapi lebih detail. Lihat ini untuk penjelasan perbedaannya.sumber