Книга: Разработка приложений в среде Linux. Второе издание
8.1. Статические библиотеки
8.1. Статические библиотеки
Статические библиотеки представляют собой простые коллекции объектных файлов, объединенных утилитой ar
(архиватор), ar
группирует объектные файлы в один архив и добавляет таблицу, в которой указано, какие объектные файлы в архиве какие символы определяют. Затем компоновщик, ld
, связывает ссылки на символ в одном объектном файле с определением этого символа в объектном файле архива. Для статических библиотек используется суффикс .а
.
В статическую библиотеку можно преобразовать группу объектных файлов с помощью такой команды:
ar res libname.a foo.o bar.о baz.o
Также в архив можно добавлять объектные файлы по одному.
ar res libname.a foo.o
ar res libname.a bar.о
ar res libname.a baz.o
В любом случае libname.a
получится одинаковым. В команде использованы перечисленные ниже опции.
r |
Включает объектные файлы в библиотеку, заменяя любой уже существующий в архиве файл с таким же именем. |
с |
Молча создает библиотеку, если таковой еще не существует. |
s | Поддерживает в таблице соответствие названий символов объектным файлам. |
При сборке статических библиотек необходимость в использовании других опций возникает не часто. Однако ar поддерживает другие опции и возможности, о которых подробно можно прочесть на man-странице команды.