على نظام UNIX/Linux ، كيف يمكنني معرفة المزيد عن أرشيف mylib.a؟
سؤال
في هذه الحالة بالذات ، أحاول اكتشاف ما إذا كان ملف 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 بت.
في الحالة العامة ، أنا فقط أستخدم الأداة المساعدة "الملف".
لا تنتمي إلى StackOverflow