c libraries how install
У цьому посібнику з бібліотек C ++ буде розказано, що таке бібліотеки в C ++, їх типи, а також встановлення та використання стандартної бібліотеки C ++:
Бібліотеку можна визначити як пакет коду або функцій, який можна повторно використовувати. Різні програми можуть використовувати ту саму бібліотеку знову і знову. Маючи бібліотеки, ми досягаємо багаторазового використання, тобто одного з принципів об’єктно-орієнтованого програмування.
Наприклад, математичні функції, такі як sin, cos, tan, abs тощо можуть бути перетворені в бібліотеку. Роблячи це, нам не потрібно писати ці функції знову і знову для кожного додатка. Ми можемо просто посилатися на бібліотеку та повторно використовувати код у наших додатках.
=> Завітайте сюди, щоб вивчити C ++ з нуля.
Що ви дізнаєтесь:
Бібліотеки C ++
Бібліотека C ++ зазвичай складається з:
Файл заголовка: Це визначає функціональність, яку пропонує бібліотека.
Попередньо скомпільований двійковий файл: Цей файл містить фактичну реалізацію функціоналу. Ця реалізація попередньо скомпільована на машинну мову.
Бібліотеки попередньо скомпільовані, оскільки немає причин перекомпілювати бібліотеки, оскільки вони майже не змінюються. По-друге, оскільки попередньо скомпільовані бібліотеки переходять у форму машинної мови, вони захищені, оскільки ніхто не може отримати до них безпосередній доступ. Таким чином, бібліотеки забезпечені.
У C ++ ми маємо два типи бібліотек:
- Статичні бібліотеки
- Динамічні бібліотеки
Статичні бібліотеки
Статичні бібліотеки також називаються архівами. Статична бібліотека - це бібліотека, яка стає частиною виконуваного файлу, який посилається на неї. Таким чином, коли ми розробляємо додаток і посилаємося на статичну бібліотеку, вміст статичної бібліотеки замінюється в додатку.
Статичні бібліотеки в Windows зазвичай мають розширення '.lib', тоді як у бібліотеках Linux розширення '.a' (або архів).
додаток, який дозволяє шпигувати за іншими телефонами
Однією з переваг статичної бібліотеки програмних посилань є те, що нам не потрібно поширювати статичну бібліотеку разом із виконуваним файлом. Це пов’язано з тим, що вміст статичної бібліотеки є частиною програм, і немає потреби надавати його окремо.
Ця конкретна перевага призводить до недоліку, оскільки виконуваний файл може стати громіздким і витрачати занадто багато місця, оскільки бібліотека є частиною виконуваного файлу.
Ще одним недоліком наявності статичної бібліотеки є те, що якщо статична бібліотека змінюється, то виконуваний файл, що посилається на неї, також повинен бути оновлений.
Динамічні бібліотеки
Динамічна бібліотека також відома як “спільна бібліотека”. У Windows динамічна бібліотека має розширення “.dll” (динамічно пов’язана бібліотека). У Linux динамічна бібліотека має розширення “.so” (спільний об’єкт).
Динамічна бібліотека - це бібліотека, яка складається з підпрограм, які завантажуються в додаток під час виконання. Коли програма посилається на динамічну бібліотеку, тоді бібліотека не стає частиною програми, але вона залишається як окрема одиниця.
Перевага динамічної бібліотеки полягає в тому, що однією копією бібліотеки можуть користуватися багато програм, тим самим заощаджуючи простір. Ще однією перевагою є те, що, оскільки динамічна бібліотека є окремим блоком, виконуваний файл програми не змінюється при зміні динамічної бібліотеки.
Єдиним недоліком динамічної бібліотеки є те, що для завантаження та посилання на бібліотеку потрібна окрема програма, яка може бути громіздкою. Щоб вирішити цю проблему, ми використовуємо процедуру “бібліотека імпорту”.
Ан імпортувати бібліотеку це механізм, який автоматично завантажує та використовує динамічну бібліотеку в програмі. У Windows бібліотека імпорту зберігає невелику статичну бібліотеку (.lib), що має те саме ім'я, що й файл .dll, і під час компіляції пов'язана з програмою.
Після цього динамічна бібліотека використовується як статична бібліотека. В операційній системі Linux динамічна бібліотека або файл спільного об'єкта (.so) діє як бібліотека імпорту, а також як динамічна бібліотека. Більшість компонувальників в ОС Linux здатні створити бібліотеку імпорту для динамічної бібліотеки.
Як встановити та використовувати бібліотеки C ++
Давайте розглянемо деякі кроки, які нам потрібно виконати, щоб встановити ці бібліотеки та використовувати їх у нашому додатку.
# 1) Придбання бібліотеки
Для того, щоб використовувати бібліотеку в нашому додатку, нам спочатку потрібно придбати бібліотеку. Бібліотека може бути попередньо скомпільована - у такому випадку нам просто потрібно завантажити бібліотеку для операційної системи. Якщо бібліотека не попередньо скомпільована, то нам потрібно завантажити вихідний код і скомпілювати його на нашій машині.
У вікнах бібліотеки зазвичай мають розширення .zip, тоді як в операційній системі Linux пакет бібліотек поширюється як „.RPM”.
# 2) Встановіть бібліотеку
Наступним кроком після отримання бібліотеки є встановлення бібліотеки. Встановлення в Windows просте, як розпакування вмісту бібліотеки в папці. У Linux ми можемо запустити менеджер пакетів для встановлення бібліотеки.
# 3) Включіть шлях до бібліотеки для компілятора
Нам потрібно встановити шлях до бібліотеки, щоб компілятор знав, де шукати бібліотечні файли. Це може бути каталог «включити» у Windows або «/ usr / include» у Linux.
# 4) Пов’яжіть шлях до бібліотеки
Цей крок виконується таким чином, щоб компонувальник знав точний шлях до бібліотек, які він повинен зв’язати під час процесу зв’язування. Зазвичай у Windows є папка «/ lib» або в Linux папка «/ usr / lib», яка містить усі бібліотеки.
Після встановлення бібліотеки компілятор і компонувальник знають шлях бібліотеки до використання, і бібліотека готова до використання. У нашій програмі ми можемо посилатися на функціональність бібліотеки, і оскільки ми включили в нашу програму файли заголовків, компілятор зможе скомпілювати цю функціональність.
Оскільки програмісти в основному використовують IDE для розробки, ми вказуємо шлях бібліотеки в самій IDE.
Стандартні заголовки / бібліотеки на C ++
Давайте обговоримо деякі стандартні заголовки або бібліотеки, якими користується мова С ++. Ми вже обговорювали ці заголовки у відповідних темах у наших підручниках з C ++.
C Стандартна бібліотека
Стандарт ANSI C визначає C стандартна бібліотека або libc яка діє як стандартна бібліотека для мови програмування C. C ++ включає кожен заголовок зі стандартної бібліотеки C під іншою назвою, додаючи 'c' на початку і видаляючи '.h' в кінці. Таким чином, заголовок xxx.h на мові C стане «cxxx» у стандарті C ++.
Стандартна бібліотека С забезпечує функціональність, пов’язану з макросами, обробкою рядків, математичними обчисленнями Визначення типів, обробка вводу / виводу, управління пам’яттю тощо.
Перевірте тут для отримання додаткової інформації про стандартну бібліотеку C.
загальний
Загальна бібліотека C ++ включає наступні заголовки, як показано нижче.
Назва заголовка | Опис |
---|---|
Визначає функціональність кортежу. Доступно з C ++ 11 і далі. | |
Алгоритми, що використовуються багатьма контейнерами, визначені в цьому заголовку. | |
Включає елементи часу, такі як std :: chrono :: time_point, std :: chrono :: duration і clocks. | |
Цей заголовок надає об'єкти функцій, що використовуються із загальними алгоритмами. | |
Містить класи та шаблони для ітераторів. | |
Визначає функціональність управління пам’яттю в C ++. | |
Визначає стандартні класи винятків, включаючи std :: logic_error та std :: runtime_error, обидва похідні від std :: exception. | |
Класи шаблону, такі як std :: pair тощо, або простори імен, такі як std :: rel_ops, визначені в цьому заголовку. |
Потоки та вхід / вихід
Назва заголовка | Опис |
---|---|
Містить функціонал класу шаблону std :: ostream та інших підтримуючих класів для виводу. | |
Забезпечує функціональність для введення-виведення на основі файлів. | |
Містить функціональні можливості для форматування виводу, такі як точність, база тощо. | |
Містить базові функціональні можливості для операцій iostream. | |
Забезпечує прямі оголошення декількох шаблонів класів, пов’язаних з введенням / виведенням. | |
Забезпечує основи введення та виведення на C ++. | |
Містить функціональність класу шаблону std :: istream та інших підтримуючих класів для введення. | |
Визначає клас шаблону std :: stringstream та інші допоміжні класи, що використовуються для маніпулювання рядками. | |
Містить функціонал для читання та запису в / з певних типів послідовностей символів, таких як зовнішні файли або рядки. |
Мовна підтримка
Назва заголовка | Опис |
---|---|
Реалізує функціонал для std :: queue, однобічної черги та std :: priority_queue, черги пріоритетів. | |
Цей заголовок містить різні типи та функції для обробки винятків, включаючи базовий клас для всіх винятків, std :: exception. | |
Цей заголовок містить клас шаблону std :: numeric_limits, що використовується для опису основних числових властивостей | |
Містить оператори new та delete та інші функції, пов’язані з основами управління пам’яттю C ++. | |
Забезпечує можливості для роботи з інформацією про тип виконання C ++. |
Струни
Назва заголовка | Опис |
---|---|
Цей заголовок містить стандартні рядкові класи та шаблони на C ++. | |
Це нове в C ++ 11. Забезпечує утиліти для рядків, що відповідають шаблонам, за допомогою регулярних виразів. |
Локалізація
Назва заголовка | Опис |
---|---|
Цей заголовок має функціональність мови. Він визначає класи та оголошує функції, які інкапсулюють та обробляють інформацію, специфічну для мовної мови. | |
Містить грані перетворення коду для різних кодувань символів. |
Контейнери
Назва заголовка | Опис |
---|---|
Містить функціонал для std :: array, контейнера для масиву фіксованого розміру. Нове доповнення в C ++ 11 та TR1. | |
Спеціалізований клас контейнера std :: bitset, бітовий масив. | |
Містить функціонал для std :: deque, подвійної черги. | |
Заголовок для std :: forward_list, однопов'язаний список. Нове доповнення в C ++ 11 та TR1. | |
Містить функціонал для std :: list, подвійно пов'язаного списку. | |
Містить функціонал для std :: map та std :: multimap, відсортований асоціативний масив та багатокарт. | |
Має заголовок для std :: set та std :: multiset, відсортованих асоціативних контейнерів або наборів. | |
Надає контейнерний адаптер класу std :: stack, стек. | |
Цей заголовок містить функції std :: unordered_map та std :: unordered_multimap, хеш-таблиці. Нове у C ++ 11 та TR1. | |
Надає функціональність для std :: unordered_set та std :: unordered_multiset. Нове у C ++ 11 та TR1. | |
Надає функціональність для std :: vector, динамічного масиву. |
Бібліотека підтримки ниток
Назва заголовка | Опис |
---|---|
Новий клас і простір імен для роботи з потоками від C ++ 11 і далі. | |
Нове доповнення до C ++ 11 і далі. Він забезпечує мьютекси, блокування, одноразовий дзвінок тощо, що є всіма механізмами взаємного виключення. | |
Містить функціональні можливості змінних умов, які забезпечують примітиви синхронізації, що використовуються для блокування потоку, доки інший потік не повідомить про те, що якась умова виконана, або до досягнення системного часу. Нове доповнення для C ++ 11 і далі. | |
Цей заголовок містить компоненти, які програма C ++ може використовувати для отримання в одному потоці та результату (значення або виняток) із функції, яка працювала в тому самому потоці або іншому потоці. |
Числова бібліотека
Назва заголовка | Опис |
---|---|
Заголовок описує різні функції для представлення та управління складними числами. Він також має шаблон класу для комплексних чисел | |
Функціональність генерації (псевдо-) випадкових чисел | |
Цей заголовок містить - п'ять шаблонів класів (valarray, slice_array, gslice_array, mask_array та indirect_array), - два класи (нарізка та нарізка), - Серія пов’язаних шаблонів функцій для представлення та обробки масивів значень. | |
Містить загальні числові операції. |
Висновок
Ми детально обговорили бібліотеки C ++, а також їх типи та кроки щодо встановлення та налаштування бібліотеки.
Ми дізналися, що стандартна бібліотека C ++ містить різні заголовки, що забезпечують різні функціональні можливості. Ми можемо використовувати ці стандартні заголовки бібліотек для розробки різноманітних програм на C ++.
=> Перевірте ВСІ підручники з C ++ тут.
Рекомендована література
- Бібліотечні функції в C ++
- Стандартна бібліотека шаблонів (STL): Короткий вступ
- Повний огляд C ++
- 70+ НАЙКРАЩИХ підручників для C ++ для вивчення програмування на C ++ БЕЗКОШТОВНО
- Форматування вводу / виводу: printf, sprintf, scanf Функції в C ++
- Основні операції введення / виводу на C ++
- Функції рядка в C ++: getline, substring, length string & More