Теоретические сведения по C++ для студентов курса “Программирование на основе классов и шабллонов” кафедры ИУ5 МГТУ им. Н.Э. Баумана.
Библиотека — это набор кода для повторного использования в разных программах. Обычно библиотека C++ состоит из:
заголовочного файла (описание функций),
скомпилированного бинарного файла (реализация).
Библиотеки компилируются заранее, чтобы экономить время и защищать исходный код.
Существуют два типа библиотек: статические и динамические.
Статическая библиотека подключается к программе во время компиляции и становится частью исполняемого файла.
Расширения: .lib (Windows), .a (Linux).
Плюсы:
Минусы:
Динамическая библиотека загружается во время выполнения и остаётся отдельным файлом.
Расширения: .dll (Windows), .so (Linux).
Плюсы:
Минусы:
Для упрощения работы с динамическими библиотеками используются библиотеки импорта, которые позволяют работать с ними почти так же, как со статическими.
Библиотека импорта — это вспомогательная библиотека, которая упрощает использование динамической библиотеки.
В Windows библиотека импорта обычно имеет расширение .lib и связана с динамической библиотекой .dll. Она подключается к программе во время компиляции, а при запуске приложения автоматически загружается соответствующая динамическая библиотека.
В Linux файл .so одновременно выполняет роль динамической библиотеки и библиотеки импорта.
Назначение библиотеки импорта:
Использование библиотеки в C++ обычно включает 4 основных шага:
Получить библиотеку Желательно скачать готовую (скомпилированную) версию для вашей ОС. В Linux — через менеджеры пакетов, в Windows библиотеки часто распространяются как ZIP-архивы.
Установить библиотеку В Linux установка обычно выполняется через менеджер пакетов. В Windows библиотеку чаще всего просто распаковывают в отдельную папку (например, C:\Libs).
Указать компилятору путь к заголовочным файлам Обычно это каталог include библиотеки. В Linux он часто уже находится в стандартном пути поиска.
Указать компоновщику путь к файлам библиотеки Обычно это каталог lib. В Linux стандартный путь — /usr/lib.
Использование библиотеки в проекте
Для каждого проекта необходимо:
Указать файлы библиотек для компоновки Требуется для статических библиотек и библиотек импорта.
Подключить заголовочные файлы Это сообщает компилятору о доступных функциях библиотеки.
Обеспечить доступ к динамическим библиотекам В Linux — через стандартные пути или переменную LD_LIBRARY_PATH. В Windows — проще всего разместить .dll рядом с исполняемым файлом.