Как я могу узнать больше об архиве mylib.a в системе unix/linux?

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

  •  06-07-2019
  •  | 
  •  

Вопрос

В данном конкретном случае я пытаюсь выяснить, совместим ли файл mylib.a с 32- или 64-разрядной версией.Я знаком с ldd для общих объектов (mylib.so), но как мне проверить обычный архив .a?

Это было полезно?

Решение

«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 с поддержкой нескольких библиотек , но это довольно просто, не так ли?

Стандартное " нм " и " ar " утилиты предоставят вам информацию об архиве.

Чтобы узнать о 32/64-битной способности архива, используйте " ar " чтобы извлечь .o файлы внутри mylib.a, затем запустите "файл" в файлах .o, чтобы узнать их тип, включая использование 32/64 бит.

В общем случае я просто использую утилиту 'file'.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top