Cara mencetak daftar simbol yang diekspor dari pustaka dinamis


121

Jadi saya telah mencoba untuk mendapatkan perpustakaan dinamis untuk bekerja dalam proyek Xcode saya di bawah Mac OS X. Sejauh ini tidak menyenangkan.

Saya dapat memuat file dylib, tetapi ketika saya memanggil dlsym untuk mendapatkan penunjuk fungsi, ia mengembalikan 0 dan dlerror mengatakan simbol tidak ditemukan.

Jadi saya bertanya-tanya apakah ada cara sederhana untuk membuat daftar simbol yang diekspor dari file dylib. Ide apa pun akan bagus.

Jawaban:


152

pria 1 nm

https://web.archive.org/web/20160316222941/https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/nm.1.html

Sebagai contoh:

nm -gU /usr/local/Cellar/cairo/1.12.16/lib/cairo/libcairo-trace.0.dylib

2
Di bawah OS X Leopard (10.5, ya, saya tahu ...) Anda harus menggunakan nm -gu, misalnya -uopsinya adalah huruf kecil.
Laryx Decidua

4
man 1 nm berdiri sendiri dan akan terus bekerja saat baris perintah berubah: p
MK.

9
@Tokopedia man 1 nmmencantumkan banyak hal yang dapat dilakukan dengan nm. Sekali lagi, ini adalah sumber daya eksternal yang dapat dibaca untuk menemukan solusi, tetapi bukan solusi itu sendiri untuk "cara sederhana untuk membuat daftar simbol yang diekspor dari file dylib" yang diminta . " nm -gU ….dylib" Adalah.
Slipp D. Thompson

59

Gunakan otool :

otool -TV your.dylib

ATAU

nm -g your.dylib

4
Di macOS baru, otool -T akan menampilkan otool: -T functionality obsoletepenggunaan objdump -t
joseph.smeng

Meskipun benar bahwa otool -Tlaporan functionality obsoletedi OS X yang lebih baru, itu juga benar bahwa (untuk perpustakaan dinamis) objdump -takan melaporkanThe file was not recognized as a valid object file.
TML


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.