2010-10-07 19 views
48

Sembolleri bir .o dosyasında nasıl görüntüleyebilirim? nm benim için çalışmıyor. G ++/linux kullanıyorum.Nesne dosyalarındaki semboller nasıl görüntülenir?

nm 
+5

nm, tam olarak kullandığınız şeydir. Sizin için nasıl çalışmadığını açıklayabilir misiniz? – nos

+1

Diyor ki: 'nm: Lib1.o: Dosya biçimi tanınmadı' – nakiya

+4

@nakiya: '' Lib1.o' dosyasını çalıştırın ve çıktıların ne olduğunu bize bildirin. – DarkDust

cevap

57

yerine nm, güçlü objdump kullanabilirsiniz:

+1

Ayrıca ObjDump denedim. Aynı sonuç: 'objdump: Lib1.o: Dosya formatı tanınmıyor' – nakiya

+1

' objdump -t Lib1.o' deneyin – mustafa

7

fonksiyonları bir nesne dosyası veya kütüphane veya çalıştırılabilir dahil edildiği bakmak için bir komut yoktur. Detaylar için man sayfasına bakınız. objdump -t myfile veya objdump -T myfile'u deneyin. -C bayrağıyla, nm gibi C++ isimlerini de sıralayabilirsiniz.

+1

OP, 'nm' kullanamayacağını doğrudan belirtti. –

9

Başka bir platform için çapraz derleyici kullanıyor musunuz? Eğer öyleyse, ilgili nm veya objdump commmand'ı kullanmanız gerekir. Örneğin, XXX-YYY-gcc .o dosyasını derlemek için kullandıysanız, dosyaları işlemek için XXX-YYY-nm veya XXX-YYY-objdump kullanmanız gerekir.

3

Sadece şunu çalıştırın: nm you_obj_file.o | c++filt