2012-02-13 24 views
8

Tôi đã có tệp thư viện tĩnh. Làm thế nào tôi có thể nhìn thấy cho dù nó được biên dịch trong i386 hoặc trong nền tảng cánh tay. Cảm ơn.Cách xem nền tảng biên dịch của tệp thư viện tĩnh

+1

Bạn quên đề cập đến hệ điều hành mà bạn có. –

+0

mac os ... xin lỗi – seanxiaoxiao

+0

Xem câu trả lời của tôi sau đó - không biết nhiều (mặc dù bạn là lập trình viên có thể biết) Mac OS X là hệ thống Unix đầy đủ :) –

Trả lời

11

Trong Unix (và tương tự - ví dụ, Linux hoặc Minix) hệ thống, bạn có thể sử dụng "tập tin" tiện ích:

%file /lib/libc.so.7 
libc.so.7: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked, stripped 

(các % cho thấy một dấu nhắc shell và không phải là một phần của lệnh)

Đối với Windows, tôi không biết nếu có lệnh tích hợp sẵn, nhưng nếu không, bạn có thể tìm thấy tiện ích trên trang này: http://gnuwin32.sourceforge.net/packages.html (gói file khoảng 1/3 trang xuống) .

EDIT: Đối với các thư viện tĩnh (.a files), trước tiên bạn cần phải giải nén chúng và kiểm tra một tập tin .o:

%cp /usr/lib/libchipmunk.a . 
%ar -x libchipmunk.a 
%file *.o 
chipmunk.c.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped 
<snip> 

CẢNH BÁO:ar -x ... sẽ gây ô nhiễm thư mục địa phương, vì vậy hãy chắc chắn để sao chép các tệp ở một nơi khác (nói /tmp/something) trước tiên!

Tôi chắc chắn có cách để trực tiếp kiểm tra các tệp này, nhưng điều này cũng hoạt động tốt!

+1

lệnh tệp không cung cấp nhiều thông tin cho một tĩnh thư viện (.a tệp). –

+0

Con đường phía trước của bạn :) –

0

file cung cấp cho bạn thông tin chung về nền tảng trên Linux.

ví dụ:

file /usr/lib/libfoo.a 

hoặc cho một nhị phân thực thi

file `which foo` 
0

Sử dụng file hoặc objdump. file luôn hoạt động nhưng objdump sẽ cung cấp cho bạn thông tin chi tiết hơn về thư viện và lưu trữ và tệp thi hành.

7

objdump là bạn của bạn;)

$ objdump -f lib/lib.a 
+1

Cảm ơn :-D chỉ đơn giản là sao chép tệp, sau đó lưu trữ tệp và cuối cùng sử dụng 'tệp'. – olibre

+0

objdump là tốt hơn vì đầu ra của tập tin có thể là một chút hạn chế. – robert

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