2010-10-07 28 views
48

Tôi làm cách nào để xem biểu tượng trong tệp .o? nm không làm việc cho tôi. Tôi sử dụng g ++/linux.Cách xem biểu tượng trong tệp đối tượng?

+5

nm là chính xác những gì bạn muốn sử dụng. Bạn có thể giải thích nó không hiệu quả với bạn không? – nos

+1

Nó nói: 'nm: Lib1.o: Định dạng tệp không được nhận dạng ' – nakiya

+4

@nakiya: Chạy' tệp Lib1.o' và cho chúng tôi biết đầu ra là gì. – DarkDust

Trả lời

57

Thay vì nm, bạn có thể sử dụng mạnh mẽ objdump. Xem trang người đàn ông để biết chi tiết. Hãy thử objdump -t myfile hoặc objdump -T myfile. Với cờ -C, bạn cũng có thể loại bỏ các tên C++, chẳng hạn như nm.

+1

Tôi cũng đã thử ObjDump. Cùng một kết quả: 'objdump: Lib1.o: Định dạng tệp không được nhận dạng' – nakiya

+1

thử' objdump -t Lib1.o' – mustafa

7

Có một lệnh để có một cái nhìn mà tại đó các chức năng được bao gồm trong một tập tin đối tượng hoặc thư viện hoặc thực thi:

nm 
+1

OP nói trực tiếp rằng anh ta không thể sử dụng 'nm'. –

9

Bạn đã sử dụng trình biên dịch chéo cho nền tảng khác chưa? Nếu vậy, bạn cần phải sử dụng số nm hoặc objdump tương ứng. Ví dụ: nếu bạn đã sử dụng XXX-YYY-gcc để biên dịch tệp .o, bạn cần sử dụng XXX-YYY-nm hoặc XXX-YYY-objdump để xử lý tệp.

3

Chỉ cần chạy: nm you_obj_file.o | c++filt

Các vấn đề liên quan