Ответ для Linux / Unix Elf:
Библиотечные архивы с расширением .a
представляют собой архив ar
(немного похожий на tar
или несжатый zip
, по модулю несколько функций), который содержит не что иное, как исходные объектные файлы, упакованные вместе. В этих файлах редко встречаются дополнительные метаданные. Вы вряд ли найдете информацию о компиляторе, если он не сохранил эту информацию в исходных .o
файлах. Вы можете просмотреть содержимое архива с помощью команды ar
:
ar -t /usr/lib/libz.a
Или команда objdump
:
objdump -a /usr/lib/libz.a
Общие объектные файлы (.so
) и исполняемые файлы - это отдельная история. Используя команды readelf
и dumpelf
из elfutils, вы можете извлекать метаданные об общем объекте, включая его каноническое имя, для чего libc
он был создан, для какой инструментальной цепочки он был создан и т. Д. Подробнее см. man readelf
и соответствующие страницы.