على نظام UNIX/Linux ، كيف يمكنني معرفة المزيد عن أرشيف mylib.a؟

StackOverflow https://stackoverflow.com/questions/184502

  •  06-07-2019
  •  | 
  •  

سؤال

في هذه الحالة بالذات ، أحاول اكتشاف ما إذا كان ملف mylib.a متوافقًا 32 أو 64 بت. أنا على دراية بـ LDD للكائنات المشتركة (mylib.so) ولكن كيف يمكنني فحص أرشيف عادي؟

هل كانت مفيدة؟

المحلول

سيعطيك "NM" و "AR" بعض المعلومات حول أرشيف المكتبة.

نصائح أخرى

$ objdump -G /usr/lib/libz.a
In archive /usr/lib/libz.a:

adler32.o:     file format elf32-i386

...

$ objdump -G /usr/lib64/libz.a
In archive /usr/lib64/libz.a:

adler32.o:     file format elf64-x86-64

...

$ objdump -G /ppc-image/usr/lib/libz.a
In archive /ppc-image/usr/lib/libz.a:

adler32.o:     file format elf32-powerpc

...

يتطلب متعددة القدر binutils, ، لكنه واضح ومباشر ، أليس كذلك؟

ستمنحك الأدوات المساعدة القياسية "NM" و "AR" معلومات حول الأرشيف.

للتعرف على قدرة 32/64 بت على استخدام الأرشيف "AR" لاستخراج ملفات .o داخل mylib.a ، ثم قم بتشغيل "ملف" على ملفات .o لاكتشاف نوعها بما في ذلك استخدام 32/64 بت.

في الحالة العامة ، أنا فقط أستخدم الأداة المساعدة "الملف".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top