PVOID - Статические библиотеки

Статические библиотеки

 Статические библиотеки — это просто набор обычных объектных файлов; по соглашению, имена статических библиотек завершаются суффиксом «.a». Этот набор создается с помощью программы ar (архиватор). Статические библиотеки используются не так часто, как раньше, из-за преимуществ общих библиотек (описанных ниже). Тем не менее, они иногда создаются, они появились первыми исторически, и их проще объяснить.

 Статические библиотеки позволяют пользователям линковаться к программам без перекомпиляции кода самих библиотек, что экономит время перекомпиляции. Отметим, что время перекомпиляции не так важно, учитывая современные быстрые компиляторы, поэтому эта причина не так важна, как раньше. Статические библиотеки часто полезны для разработчиков, если они хотят разрешить программистам линковаться к своей библиотеке, но не хотят предоставлять её исходный код (что является преимуществом для поставщика библиотеки, но, очевидно, не является преимуществом для программиста, пытающегося использовать библиотеку). Теоретически, код в статических библиотеках формата ELF, который скомпонован с исполняемым файлом, должен работать немного быстрее (на 1-5%), чем общая библиотека или динамически загружаемая библиотека, но на практике это редко случается из-за различных других факторов.

 Чтобы создать статическую библиотеку или добавить дополнительные объектные файлы в существующую статическую библиотеку, используйте команду, подобную этой:

ar rcs my_library.a file1.o file2.o

 Этот пример добавляет объектные файлы file1.o и file2.o в статическую библиотеку my_library.a, создавая my_library.a, если он еще не существует. Для получения дополнительной информации о создании статических библиотек см. ar(1).

 Создав статическую библиотеку, вы захотите ее использовать. Вы можете использовать статическую библиотеку, вызывая ее как часть процесса компиляции и компоновки при создании исполняемого файла программы. Если вы используете gcc(1) для генерации вашего исполняемого файла, вы можете использовать опцию -l, чтобы указать библиотеку; см. info:gcc для получения дополнительной информации.

 Будьте осторожны с порядком параметров при использовании gcc; опция -l является опцией компоновщика, и поэтому должна быть помещена ПОСЛЕ имени компилируемого файла. Это сильно отличается от обычного синтаксиса опций. Если вы поместите опцию -l перед именем файла, он может вообще не скомпоноваться, и вы можете получить много загадочных ошибок.

Вы также можете использовать компоновщик ld(1) напрямую, используя опции -l и -L; однако в большинстве случаев лучше использовать gcc(1), так как интерфейс ld(1) с большей вероятностью может измениться.


Этот раздел является переводом руководства Program Library HOWTO


  <<< Назад Содержание Вперед >>>