c libraries how install
Този урок за C ++ библиотеки ще обясни какво представляват библиотеките в C ++, техните типове заедно с инсталирането и използването на C ++ стандартна библиотека:
Библиотеката може да бъде дефинирана като пакет от код или функции, който може да се използва многократно. Различни приложения могат да използват една и съща библиотека отново и отново. Като разполагаме с библиотеки, ние постигаме повторна употреба, т.е.един от принципите на обектно-ориентираното програмиране.
Например, математически функции като sin, cos, tan, abs и др. могат да бъдат превърнати в библиотека. Правейки това, не е нужно да записваме тези функции отново и отново за всяко приложение. Можем просто да се позовем на библиотеката и да използваме повторно кода в нашите приложения.
=> Посетете тук, за да научите C ++ от нулата.
Какво ще научите:
C ++ библиотеки
Библиотеката на C ++ обикновено се състои от:
Заглавен файл: Това определя функционалността, която библиотеката предлага.
Предварително компилиран двоичен файл: Този файл съдържа действителното внедряване на функционалността. Това изпълнение е предварително компилирано в машинен език.
Библиотеките са предварително компилирани, тъй като няма причина да се прекомпилират библиотеките, тъй като те почти не се променят. На второ място, тъй като предварително компилираните библиотеки са в машинна езикова форма, те са защитени, тъй като никой няма достъп до тях директно. По този начин библиотеките са осигурени.
В C ++ имаме два типа библиотеки:
- Статични библиотеки
- Динамични библиотеки
Статични библиотеки
Статичните библиотеки също се наричат архиви. Статичната библиотека е библиотека, която става част от изпълнимия файл, който я препраща. По този начин, когато разработваме приложение и препращаме статична библиотека в него, съдържанието на статичната библиотека се заменя в приложението.
Статичните библиотеки на Windows обикновено имат разширение „.lib“, докато тези на Linux имат разширение „.a“ (или архив).
как да започнем кариера в qa тестване
Едно предимство на наличието на статична библиотека с референтна програма е, че не е нужно да разпространяваме статичната библиотека заедно с изпълнимия файл. Това е така, защото съдържанието на статичната библиотека е част от приложенията и няма нужда да го давате отделно.
Това специфично предимство води до недостатък, тъй като изпълнимият файл може да стане обемен и да се губи твърде много място, тъй като библиотеката е част от изпълнимия файл.
Друг недостатък на наличието на статична библиотека е, че ако статичната библиотека се промени, изпълнимият файл, който се позовава на нея, също трябва да бъде актуализиран.
Динамични библиотеки
Динамичната библиотека е известна още като „споделена библиотека“. В Windows динамичната библиотека има разширението “.dll” (динамично свързана библиотека). В Linux динамичната библиотека има разширението „.so“ (споделен обект).
Динамичната библиотека е библиотека, която се състои от подпрограми, които се зареждат в приложението по време на изпълнение. Когато приложението се позовава на динамична библиотека, тогава библиотеката не става част от приложението, но остава като отделна единица.
Динамичната библиотека има предимството, че едно копие на библиотеката може да бъде споделено от много приложения, като по този начин спестява място. Още едно предимство е, че тъй като динамичната библиотека е отделна единица, изпълнимият файл на приложението не се променя, когато динамичната библиотека се промени.
Единственият недостатък на динамичната библиотека е, че тя изисква отделна програма за зареждане и препратка към библиотеката, която може да бъде тромава. За да разрешим този проблем, използваме рутинната програма „импортиране на библиотека“.
An библиотека за импортиране е механизъм, който зарежда и използва динамична библиотека автоматично в програмата. В Windows библиотеката за импортиране поддържа малка статична библиотека (.lib) със същото име като .dll файла и е свързана с програмата по време на компилиране.
След като това бъде направено, динамичната библиотека се използва, сякаш е статична библиотека. В операционната система Linux динамичната библиотека или файлът със споделен обект (.so) действа като библиотека за импортиране, както и като динамична библиотека. Повечето линкери в Linux OS могат да създадат библиотека за импортиране на динамична библиотека.
Как да инсталирате и използвате библиотеки C ++
Нека да видим някои от стъпките, които трябва да следваме, за да инсталираме тези библиотеки и да ги използваме в нашето приложение.
# 1) Придобиване на библиотеката
За да използваме библиотеката в нашето приложение, първо трябва да придобием библиотеката. Библиотеката може да е предварително компилирана - в такъв случай просто трябва да изтеглим библиотеката за операционната система. Ако библиотеката не е предварително компилирана, тогава трябва да изтеглим изходния код и да го компилираме на нашата машина.
В прозорците библиотеките обикновено имат разширение .zip, докато в операционната система Linux пакетът от библиотеки се разпространява като ‘.RPM’.
# 2) Инсталирайте библиотеката
Следващата стъпка, след като получим библиотеката, е да я инсталираме. Инсталирането на Windows е толкова просто, колкото разархивирането на съдържанието на библиотеката в папка. В Linux можем да извикаме мениджъра на пакети, за да инсталираме библиотеката.
# 3) Включете пътя на библиотеката за компилатора
Трябва да зададем пътя на библиотеката, така че компилаторът да знае къде да търси библиотечните файлове. Това може да бъде директорията ‘include’ на Windows или ‘/ usr / include’ на Linux.
# 4) Свържете пътя на библиотеката
Тази стъпка се извършва, така че линкерът да знае точния път на библиотеките, които трябва да свърже по време на процеса на свързване. Обикновено има папка ‘/ lib’ в Windows или папка ‘/ usr / lib’ в Linux, която съдържа всички библиотеки.
След като библиотеката е инсталирана, компилаторът и линкерът знаят пътя на библиотеката за използване и библиотеката е готова за употреба. В нашата програма можем да се позовем на функционалността на библиотеката и тъй като сме включили заглавните файлове в нашата програма, компилаторът ще може да компилира функционалността.
Тъй като програмистите използват най-вече IDE за разработка, ние посочваме пътя на библиотеката в самата IDE.
Стандартни заглавки / библиотеки в C ++
Нека обсъдим някои от стандартните заглавки или библиотеки, които използва езикът C ++. Вече обсъдихме тези заглавия в съответните теми в нашите уроци за C ++.
C Стандартна библиотека
Стандартът ANSI C определя C стандартна библиотека или libc която действа като стандартна библиотека за езика за програмиране C. C ++ включва всяка заглавка от стандартната библиотека на C под различно име, като добавя „c“ в началото и премахва „.h“ в края. По този начин заглавката xxx.h в C ще стане „cxxx“ в стандарта C ++.
Стандартната библиотека C предоставя функционалността, свързана с макроси, обработка на низове, математически изчисления Определения на типа, обработка на входа / изхода, управление на паметта и др.
Проверете тук за повече информация относно C Standard Library.
общ
Общата библиотека на C ++ включва следните заглавки, както е показано по-долу.
Име на заглавката | Описание |
---|---|
Определя функционалността на кортежа. Предлага се от C ++ 11 нататък. | |
Алгоритмите, използвани от много контейнери, са дефинирани в тази заглавка. | |
Включва елементи на времето като std :: chrono :: time_point, std :: chrono :: продължителност и часовници. | |
Този заглавие предоставя обекти на функции, които да се използват с общи алгоритми. | |
Съдържа класове и шаблони за итератори. | |
Определя функционалността за управление на паметта в C ++. | |
Определя стандартни класове на изключения, включително std :: logic_error и std :: runtime_error, и двата производни на std :: изключение. | |
Класовете на шаблони като std :: pair и т.н. или пространства от имена като std :: rel_ops са дефинирани в тази заглавка. |
Потоци и вход / изход
Име на заглавката | Описание |
---|---|
Съдържа функционалността на класа на шаблона std :: ostream и други поддържащи класове за изход. | |
Осигурява функционалност за базиран на файл вход-изход. | |
Съдържа функционалност за форматиране на изхода като прецизност, база и др. | |
Съдържа основна функционалност за операции на iostream. | |
Предоставя препращащи декларации на няколко шаблона за клас, свързани с I / O. | |
Осигурява основи за въвеждане и извеждане на C ++. | |
Съдържа функционалност на класа на шаблона std :: istream и други поддържащи класове за въвеждане. | |
Определя класа на шаблона std :: stringstream и други поддържащи класове, използвани за манипулиране на низове. | |
Съдържа функционалност за четене и запис в / от определени типове символни последователности, като външни файлове или низове. |
Езикова поддръжка
Име на заглавката | Описание |
---|---|
Внедрява функционалността за std :: queue, еднократна опашка и std :: priority_queue, приоритетна опашка. | |
Този заглавие съдържа различни видове и функции за обработка на изключения, включително базовия клас за всички изключения, std :: изключение. | |
Този заглавие съдържа шаблонния клас 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, сортиран асоциативен масив и 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 нататък. Той осигурява мютекси, заключвания, обаждане веднъж и т.н., които са всички механизми за взаимно изключване. | |
Съдържа функционалност за променливи Condition, които осигуряват примитиви за синхронизация, използвани за блокиране на нишка, докато не бъде уведомена от друга нишка, че е изпълнено някакво условие, или докато се достигне системно време Новото допълнение за C ++ 11 нататък. | |
Този заглавие има компонентите, които програма C ++ може да използва за извличане в една нишка и резултата (стойност или изключение) от функция, изпълнявана в същата нишка или друга нишка. |
Числова библиотека
Име на заглавката | Описание |
---|---|
Заглавката описва различни функции за представяне и манипулиране на сложни числа. Той също има шаблон на клас за комплексни числа | |
Функционалност за генериране на (псевдо) произволни числа | |
Този заглавие съдържа - пет шаблона за клас (valarray, slice_array, gslice_array, mask_array и indirect_array), - два класа (нарязване и нарязване), - Поредица от свързани функционални шаблони за представяне и манипулиране на масиви от стойности. | |
Съдържа общи цифрови операции. |
Заключение
Обсъдихме подробно библиотеките на C ++ заедно с техните типове и стъпките за инсталиране и настройка на библиотеката.
Разбрахме, че стандартната библиотека на C ++ съдържа различни заглавки, които предоставят различни функционалности. Можем да използваме тези стандартни заглавки на библиотеки, за да разработим различни приложения в C ++.
=> Проверете ВСИЧКИ уроци за C ++ тук.
Препоръчително четене
- Библиотечни функции в C ++
- Стандартна библиотека с шаблони (STL): Кратко въведение
- Пълен преглед на C ++
- 70+ НАЙ-ДОБРИ уроци за C ++, за да научите БЕЗПЛАТНО програмиране на C ++
- Форматиране на I / O: printf, sprintf, scanf Функции в C ++
- Основни операции по въвеждане / извеждане в C ++
- Функции на низове в C ++: getline, substring, дължина на низа & More