Как я могу узнать больше об архиве mylib.a в системе unix/linux?
Вопрос
В данном конкретном случае я пытаюсь выяснить, совместим ли файл 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'.
Не связан с StackOverflow