c libraries how install
Ten samouczek dotyczący bibliotek C ++ wyjaśni, czym są biblioteki w C ++, ich typy wraz z instalacją i użyciem standardowej biblioteki C ++:
Bibliotekę można zdefiniować jako pakiet kodu lub funkcji wielokrotnego użytku. Różne aplikacje mogą wielokrotnie korzystać z tej samej biblioteki. Posiadając biblioteki, uzyskujemy możliwość ponownego wykorzystania, czyli jedną z zasad programowania obiektowego.
Na przykład, funkcje matematyczne, takie jak sin, cos, tan, abs, itp. można przekształcić w bibliotekę. W ten sposób nie musimy wielokrotnie pisać tych funkcji dla każdej aplikacji. Możemy po prostu odwołać się do biblioteki i ponownie użyć kodu w naszych aplikacjach.
=> Odwiedź tutaj, aby nauczyć się C ++ od podstaw.
Czego się nauczysz:
Biblioteki C ++
Biblioteka C ++ zazwyczaj składa się z:
Plik nagłówkowy: Definiuje funkcjonalność, którą oferuje biblioteka.
Skompilowany plik binarny: Ten plik zawiera rzeczywistą implementację funkcji. Ta implementacja jest prekompilowana do języka maszynowego.
Biblioteki są prekompilowane, ponieważ nie ma powodu, aby ponownie kompilować biblioteki, ponieważ prawie się nie zmieniają. Po drugie, ponieważ prekompilowane biblioteki są w formie języka maszynowego, są one zabezpieczone, ponieważ nikt nie ma do nich bezpośredniego dostępu. W ten sposób biblioteki są zabezpieczone.
W C ++ mamy dwa typy bibliotek:
- Biblioteki statyczne
- Biblioteki dynamiczne
Biblioteki statyczne
Biblioteki statyczne są również nazywane archiwami. Biblioteka statyczna to biblioteka, która staje się częścią pliku wykonywalnego, który się do niej odwołuje. Dlatego kiedy tworzymy aplikację i odwołujemy się do biblioteki statycznej, zawartość biblioteki statycznej jest zastępowana w aplikacji.
Biblioteki statyczne w systemie Windows mają zwykle rozszerzenie „.lib”, podczas gdy te w systemie Linux mają rozszerzenie „.a” (lub archiwum).
czym są testy akceptacyjne użytkowników w testowaniu oprogramowania
Jedną z zalet posiadania statycznej biblioteki odwołującej się do programu jest to, że nie musimy rozprowadzać biblioteki statycznej razem z plikiem wykonywalnym. Dzieje się tak, ponieważ zawartość biblioteki statycznej jest częścią aplikacji i nie ma potrzeby jej osobnego podawania.
Ta szczególna zaleta skutkuje wadą, ponieważ plik wykonywalny może stać się nieporęczny i marnuje się zbyt dużo miejsca, ponieważ biblioteka jest częścią pliku wykonywalnego.
Inną wadą posiadania biblioteki statycznej jest to, że jeśli biblioteka statyczna ulegnie zmianie, plik wykonywalny, który się do niej odwołuje, również musi zostać zaktualizowany.
Biblioteki dynamiczne
Biblioteka dynamiczna jest również nazywana „biblioteką współdzieloną”. W systemie Windows biblioteka dynamiczna ma rozszerzenie „.dll” (biblioteka dołączana dynamicznie). W systemie Linux biblioteka dynamiczna ma rozszerzenie „.so” (obiekt współdzielony).
Biblioteka dynamiczna to biblioteka składająca się z procedur ładowanych do aplikacji w czasie wykonywania. Gdy aplikacja odwołuje się do biblioteki dynamicznej, wówczas biblioteka nie staje się częścią aplikacji, ale pozostaje oddzielną jednostką.
Biblioteka dynamiczna ma tę zaletę, że jedna kopia biblioteki może być współużytkowana przez wiele aplikacji, co pozwala zaoszczędzić miejsce. Kolejną zaletą jest to, że ponieważ biblioteka dynamiczna jest oddzielną jednostką, plik wykonywalny aplikacji nie zmienia się, gdy zmienia się biblioteka dynamiczna.
Jedyną wadą biblioteki dynamicznej jest to, że wymaga ona oddzielnego programu do ładowania i odwoływania się do biblioteki, co może być uciążliwe. Aby rozwiązać ten problem, używamy procedury „importu biblioteki”.
Na biblioteka importu to mechanizm, który automatycznie ładuje i wykorzystuje bibliotekę dynamiczną do programu. W systemie Windows biblioteka importu przechowuje małą bibliotekę statyczną (.lib) o tej samej nazwie co plik .dll i jest połączona z programem w czasie kompilacji.
Po wykonaniu tej czynności biblioteka dynamiczna jest używana tak, jakby była biblioteką statyczną. W systemie operacyjnym Linux biblioteka dynamiczna lub plik obiektu współużytkowanego (.so) działa jako biblioteka importu, a także biblioteka dynamiczna. Większość konsolidatorów w systemie operacyjnym Linux jest w stanie zbudować bibliotekę importu dla biblioteki dynamicznej.
Jak zainstalować i używać bibliotek C ++
Zobaczmy kilka kroków, które musimy wykonać, aby zainstalować te biblioteki i używać ich w naszej aplikacji.
# 1) Zdobycie biblioteki
Aby móc korzystać z biblioteki w naszej aplikacji, musimy najpierw ją nabyć. Biblioteka może być prekompilowana - w takim przypadku wystarczy pobrać bibliotekę dla systemu operacyjnego. Jeśli biblioteka nie jest prekompilowana, musimy pobrać kod źródłowy i skompilować go na naszej maszynie.
W systemie Windows biblioteki zwykle mają rozszerzenie .zip, podczas gdy w systemie operacyjnym Linux pakiet biblioteki jest rozpowszechniany jako „.RPM”.
# 2) Zainstaluj bibliotekę
Następnym krokiem po uzyskaniu biblioteki jest zainstalowanie biblioteki. Instalacja w systemie Windows jest tak prosta, jak rozpakowanie zawartości biblioteki do folderu. W systemie Linux możemy wywołać menedżera pakietów, aby zainstalować bibliotekę.
# 3) Uwzględnij ścieżkę biblioteki dla kompilatora
Musimy ustawić ścieżkę do biblioteki, aby kompilator wiedział, gdzie szukać plików bibliotecznych. Może to być katalog „include” w systemie Windows lub „/ usr / include” w systemie Linux.
# 4) Połącz ścieżkę biblioteki
Ten krok jest wykonywany tak, aby konsolidator znał dokładną ścieżkę do bibliotek, które musi połączyć podczas procesu łączenia. Zwykle istnieje folder „/ lib” w systemie Windows lub folder „/ usr / lib” w systemie Linux, który zawiera wszystkie biblioteki.
Po zainstalowaniu biblioteki kompilator i konsolidator znają ścieżkę do biblioteki do użycia, a biblioteka jest gotowa do użycia. W naszym programie możemy odwołać się do funkcjonalności biblioteki, a ponieważ zawarliśmy pliki nagłówkowe w naszym programie, kompilator będzie mógł skompilować funkcjonalność.
Ponieważ programiści najczęściej używają IDE do programowania, określamy ścieżkę do biblioteki w samym IDE.
Standardowe nagłówki / biblioteki w C ++
Omówmy niektóre standardowe nagłówki lub biblioteki używane w języku C ++. Omówiliśmy już te nagłówki w odpowiednich tematach w naszych samouczkach C ++.
C. Biblioteka standardowa
Standard ANSI C określa Biblioteka standardowa C. lub libc która działa jako standardowa biblioteka dla języka programowania C. C ++ zawiera każdy nagłówek ze standardowej biblioteki C pod inną nazwą, dodając „c” na początku i usuwając „.h” na końcu. Zatem nagłówek xxx.h w C stanie się „cxxx” w standardzie C ++.
Biblioteka standardowa C zapewnia funkcjonalność związaną między innymi z makrami, obsługą ciągów znaków, obliczeniami matematycznymi, definicją typów, przetwarzaniem wejścia / wyjścia, zarządzaniem pamięcią itp.
Czek tutaj aby uzyskać więcej informacji na temat biblioteki standardowej C.
generał
Ogólna biblioteka C ++ zawiera następujące nagłówki, jak pokazano poniżej.
Nazwa nagłówka | Opis |
---|---|
Definiuje funkcjonalność spójnej kolekcji. Dostępne od C ++ 11 i nowszych. | |
Algorytmy używane przez wiele kontenerów są zdefiniowane w tym nagłówku. | |
Obejmuje elementy czasu, takie jak std :: chrono :: time_point, std :: chrono :: duration i clocks. | |
Ten nagłówek zawiera obiekty funkcji, które mają być używane z ogólnymi algorytmami. | |
Zawiera klasy i szablony dla iteratorów. | |
Definiuje funkcje zarządzania pamięcią w C ++. | |
Definiuje standardowe klasy wyjątków, w tym std :: logic_error i std :: runtime_error, obie wywodzące się z std :: wyjątek. | |
Klasy szablonów, takie jak std :: pair itp. Lub przestrzenie nazw, takie jak std :: rel_ops, są zdefiniowane w tym nagłówku. |
Strumienie i wejście / wyjście
Nazwa nagłówka | Opis |
---|---|
Zawiera funkcjonalność klasy szablonu std :: ostream i innych klas pomocniczych dla danych wyjściowych. | |
Zapewnia funkcjonalność wejścia-wyjścia opartego na plikach. | |
Zawiera funkcje formatowania wyjściowego, takie jak precyzja, podstawa itp. | |
Zawiera podstawowe funkcje operacji iostream. | |
Udostępnia deklaracje do przodu kilku szablonów klas związanych z we / wy. | |
Zapewnia podstawy C ++ wejścia i wyjścia. | |
Zawiera funkcjonalność klasy szablonu std :: istream i innych klas pomocniczych do wprowadzania danych. | |
Definiuje klasę szablonu std :: stringstream i inne klasy pomocnicze używane do manipulacji na ciągach znaków. | |
Zawiera funkcje odczytu i zapisu do / z określonych typów sekwencji znaków, takich jak pliki zewnętrzne lub ciągi. |
Wsparcie językowe
Nazwa nagłówka | Opis |
---|---|
Implementuje funkcjonalność dla std :: queue, kolejki single-ended i std :: priority_queue, kolejki priorytetowej. | |
Ten nagłówek zawiera różne typy i funkcje do obsługi wyjątków, w tym klasę bazową dla wszystkich wyjątków, std :: wyjątek. | |
Ten nagłówek zawiera klasę szablonu std :: numeric_limits używaną do opisywania podstawowych właściwości numerycznych | |
Zawiera operatory new i delete oraz inne funkcje związane z podstawami zarządzania pamięcią C ++. | |
Zapewnia narzędzia do pracy z informacjami o typie czasu wykonywania C ++. |
Smyczki
Nazwa nagłówka | Opis |
---|---|
Ten nagłówek zawiera standardowe klasy ciągów i szablony w języku C ++. | |
To nowość w C ++ 11. Udostępnia narzędzia do ciągów dopasowywania wzorców przy użyciu wyrażeń regularnych. |
Lokalizacja
Nazwa nagłówka | Opis |
---|---|
Ten nagłówek ma funkcje regionalne. Definiuje klasy i deklaruje funkcje, które hermetyzują i przetwarzają informacje specyficzne dla ustawień regionalnych. | |
Zawiera aspekty konwersji kodu dla różnych kodowań znaków. |
Pojemniki
Nazwa nagłówka | Opis |
---|---|
Zawiera funkcjonalność dla std :: array, kontenera dla tablicy o stałym rozmiarze. Nowy dodatek w C ++ 11 i TR1. | |
Specjalistyczna klasa kontenera std :: bitset, tablica bitowa. | |
Zawiera funkcjonalność std :: deque, podwójnie zakończonej kolejki. | |
Nagłówek dla std :: forward_list, pojedynczo połączonej listy. Nowy dodatek w C ++ 11 i TR1. | |
Zawiera funkcjonalność std :: list, podwójnie połączonej listy. | |
Zawiera funkcjonalność dla std :: map i std :: multimap, posortowanej tablicy asocjacyjnej i multimap. | |
Ma nagłówek dla std :: set i std :: multiset, posortowane asocjacyjne kontenery lub zestawy. | |
Udostępnia klasę adaptera kontenera std :: stack, stos. | |
Ten nagłówek zawiera funkcje std :: unordered_map i std :: unordered_multimap, tabele skrótów. Nowość w C ++ 11 i TR1. | |
Zapewnia funkcjonalność dla std :: unordered_set i std :: unordered_multiset. Nowość w C ++ 11 i TR1. | |
Zapewnia funkcjonalność dla std :: vector, tablicy dynamicznej. |
Biblioteka obsługi wątków
Nazwa nagłówka | Opis |
---|---|
Nowa klasa i przestrzeń nazw do pracy z wątkami od C ++ 11 wzwyż. | |
Nowy dodatek do C ++ 11 i nowszych. Zapewnia muteksy, blokady, jednorazowe wywołanie itp., Które są mechanizmami wzajemnego wykluczania. | |
Zawiera funkcje dla zmiennych warunkowych, które zapewniają operacje podstawowe synchronizacji używane do blokowania wątku do momentu powiadomienia przez inny wątek o spełnieniu jakiegoś warunku lub do osiągnięcia czasu systemowego. Nowy dodatek dla C ++ 11 i nowszych. | |
Ten nagłówek zawiera składniki, których program C ++ może użyć do pobrania w jednym wątku oraz wynik (wartość lub wyjątek) z funkcji, która została uruchomiona w tym samym lub innym wątku. |
Biblioteka numeryczna
Nazwa nagłówka | Opis |
---|---|
Nagłówek opisuje różne funkcje do reprezentowania liczb zespolonych i manipulowania nimi. Zawiera również szablon klas dla liczb zespolonych | |
Funkcjonalność do generowania (pseudo) liczb losowych | |
Ten nagłówek zawiera - pięć szablonów klas (valarray, slice_array, gslice_array, mask_array i inner_array), - dwie klasy (plasterek i gslice), - Szereg powiązanych szablonów funkcji do reprezentowania tablic wartości i manipulowania nimi. | |
Zawiera ogólne operacje numeryczne. |
Wniosek
Szczegółowo omówiliśmy biblioteki C ++ wraz z ich typami oraz krokami instalacji i konfiguracji biblioteki.
Dowiedzieliśmy się, że standardowa biblioteka C ++ zawiera różne nagłówki, które zapewniają różne funkcje. Możemy używać tych standardowych nagłówków bibliotek do tworzenia różnych aplikacji w C ++.
=> Sprawdź WSZYSTKIE samouczki C ++ tutaj.
rekomendowane lektury
- Funkcje biblioteczne w C ++
- Biblioteka standardowych szablonów (STL): krótkie wprowadzenie
- Pełne omówienie C ++
- 70+ NAJLEPSZYCH samouczków C ++ do nauki programowania w C ++ ZA DARMO
- Formatowanie I / O: printf, sprintf, scanf Funkcje w C ++
- Podstawowe operacje wejścia / wyjścia w C ++
- Funkcje łańcuchowe w C ++: getline, podciąg, długość ciągu i więcej