GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara melihat daftar fungsi yang diekspor oleh perpustakaan bersama Linux?

Pada MAC, Anda perlu menggunakan nm *.o | c++filt , karena tidak ada -C opsi di nm .


Yang Anda butuhkan adalah nm dan -D-nya opsi:

$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
         U atanf
         U calloc
.
.
.

Sumbol yang diekspor ditandai dengan T . Simbol wajib yang harus dimuat dari objek bersama lainnya memiliki U . Perhatikan bahwa tabel simbol tidak hanya menyertakan fungsi, tetapi juga variabel yang diekspor.

Lihat nm halaman manual untuk informasi lebih lanjut.


Di antara alat lain yang telah disebutkan, Anda juga dapat menggunakan readelf (manual). Mirip dengan objdump tetapi lebih ke detail. Lihat ini untuk penjelasan perbedaannya.

$ readelf -sW /lib/liblzma.so.5 |head -n10

Symbol table '.dynsym' contains 128 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (4)
     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (4)
     3: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTable
     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)
     5: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)
     6: 00000000     0 FUNC    GLOBAL DEFAULT  UND [email protected]_2.0 (5)

objdump -T *.so juga dapat melakukan pekerjaan itu


Linux
  1. Bagaimana cara membuat versi perpustakaan bersama di Linux?

  2. Bagaimana cara mendaftar dengan cepat semua fungsi/simbol yang tersedia dalam kode C pada arsitektur Linux?

  3. Cara membuat penundaan perpustakaan bersama dimuat di Linux

  1. Cara Mendaftar Ketergantungan Paket Di Linux

  2. Pengantar Pustaka Bersama Linux (Cara Membuat Pustaka Bersama)

  3. Cara Mengubah Shell Default Di Linux

  1. Cara mengubah shell default di Linux

  2. Cara menginisialisasi perpustakaan bersama di Linux

  3. Cara mengatur googleTest sebagai perpustakaan bersama di Linux