c libraries how install
Bu C ++ Kitaplıkları öğreticisi, C ++ 'daki Kitaplıkların ne olduğunu, türlerinin yanı sıra bir C ++ Standart Kitaplığın kurulum ve kullanımıyla birlikte açıklanacaktır:
Bir kitaplık, yeniden kullanılabilen bir kod veya işlev paketi olarak tanımlanabilir. Çeşitli uygulamalar aynı kitaplığı tekrar tekrar kullanabilir. Kütüphanelere sahip olarak, yeniden kullanılabilirliğe, yani Nesne Yönelimli Programlamanın ilkelerinden birine ulaşırız.
Örneğin, günah, cos, tan, abs vb. matematiksel işlevler bir kitaplığa dönüştürülebilir. Bunu yaparak, her uygulama için bu işlevleri tekrar tekrar yazmak zorunda kalmayız. Sadece kütüphaneye başvurabilir ve kodu uygulamalarımızda yeniden kullanabiliriz.
=> Sıfırdan C ++ Öğrenmek İçin Burayı Ziyaret Edin.
Ne öğreneceksin:
C ++ Kitaplıkları
Bir C ++ kitaplığı genellikle şunlardan oluşur:
Bir başlık dosyası: Bu, kütüphanenin sunduğu işlevselliği tanımlar.
Önceden derlenmiş bir ikili: Bu dosya, işlevselliğin gerçek uygulamasını içerir. Bu uygulama, bir makine diline önceden derlenmiştir.
Kitaplıklar, neredeyse hiç değişmedikleri için yeniden derlemek için bir neden olmadığından önceden derlenmiştir. İkinci olarak, önceden derlenmiş kitaplıklar bir makine dili biçiminde olduğundan, hiç kimse bunlara doğrudan erişemeyeceğinden güvenlidirler. Böylece kütüphaneler güvence altına alınmıştır.
C ++ 'da iki tür Kitaplığımız vardır:
- Statik Kitaplıklar
- Dinamik kitaplıklar
Statik Kitaplıklar
Statik Kitaplıklar, Arşivler olarak da adlandırılır. Statik kitaplık, kendisine başvuran yürütülebilir dosyanın bir parçası haline gelen bir kitaplıktır. Böylece bir uygulama geliştirdiğimizde ve içinde bir statik kitaplığa başvurduğumuzda, statik kitaplığın içeriği uygulamada değiştirilir.
Windows'taki statik kitaplıklar genellikle '.lib' uzantısına sahipken, Linux'takilerin uzantısı '.a' (veya arşiv) vardır.
değerlendirme örneğinde terfi istemek
Bir program referans statik kitaplığına sahip olmanın bir avantajı, statik kitaplığı yürütülebilir dosya ile birlikte dağıtmamıza gerek olmamasıdır. Bunun nedeni, statik kitaplığın içeriğinin uygulamaların bir parçası olması ve ayrı olarak verilmesine gerek olmamasıdır.
Bu özel avantaj, çalıştırılabilir dosya hantal hale gelebildiğinden ve kütüphane yürütülebilir dosyanın bir parçası olduğu için çok fazla alan israf edildiğinden bir dezavantajla sonuçlanır.
Statik kitaplığa sahip olmanın başka bir dezavantajı, statik kitaplık değişirse, ona referans veren çalıştırılabilir dosyanın da güncellenmesi gerekmesidir.
Dinamik Kitaplıklar
Dinamik kitaplık, 'paylaşılan Kitaplık' olarak da bilinir. Windows'ta dinamik kitaplık '.dll' uzantısına sahiptir (dinamik olarak bağlantılı kitaplık). Linux'ta, dinamik kitaplık '.so' (paylaşılan nesne) uzantısına sahiptir.
Dinamik kitaplık, çalışma zamanında uygulamaya yüklenen yordamlardan oluşan bir kitaplıktır. Bir uygulama dinamik bir kitaplığa başvurduğunda, kitaplık uygulamanın bir parçası olmaz, ancak ayrı bir birim olarak kalır.
Dinamik kitaplığın avantajı, kitaplığın bir kopyasının birçok uygulama tarafından paylaşılabilmesi ve dolayısıyla yerden tasarruf sağlanmasıdır. Yine bir başka avantaj, dinamik kitaplık ayrı bir birim olduğu için, dinamik kitaplık değiştiğinde çalıştırılabilir uygulamanın değişmemesidir.
Dinamik bir kitaplığın sahip olduğu tek dezavantaj, külfetli olabilecek kitaplığı yüklemek ve başvurmak için ayrı bir program gerektirmesidir. Bu sorunu çözmek için, 'kütüphaneyi içe aktar' rutinini kullanıyoruz.
Bir kütüphaneyi içe aktar dinamik bir kitaplığı programa otomatik olarak yükleyen ve kullanan bir mekanizmadır. Windows'ta içe aktarma kitaplığı, .dll dosyasıyla aynı ada sahip küçük bir statik kitaplık (.lib) tutar ve derleme sırasında programa bağlanır.
Bu yapıldıktan sonra dinamik kütüphane, sanki statik bir kütüphaneymiş gibi kullanılır. Linux işletim sisteminde, dinamik kitaplık veya paylaşılan nesne (.so) dosyası, bir dinamik kitaplığın yanı sıra bir içe aktarma kitaplığı işlevi görür. Linux işletim sistemindeki bağlayıcıların çoğu, dinamik bir kitaplık için bir içe aktarma kitaplığı oluşturabilir.
C ++ Kitaplıkları Nasıl Kurulur ve Kullanılır
Bu kitaplıkları yüklemek ve bunları uygulamamızda kullanmak için izlememiz gereken bazı adımları görelim.
# 1) Kitaplığı Edinme
Kütüphaneyi uygulamamızda kullanabilmek için öncelikle kütüphaneyi edinmemiz gerekiyor. Kitaplık önceden derlenmiş olabilir - böyle bir durumda sadece işletim sistemi için kitaplığı indirmemiz gerekir. Kitaplık önceden derlenmemişse, kaynak kodunu indirmemiz ve makinemizde derlememiz gerekir.
Windows'ta kitaplıklar genellikle .zip uzantısına sahipken, Linux İşletim sisteminde kitaplık paketi '.RPM' olarak dağıtılır.
# 2) Kitaplığı Kurun
Kütüphaneyi edindikten sonraki adım, kütüphaneyi kurmaktır. Windows'a kurulum, kitaplığın içeriğini bir klasörde açmak kadar basittir. Linux'ta, kitaplığı kurmak için paket yöneticisini çağırabiliriz.
# 3) Derleyici için Kitaplık yolunu ekleyin
Derleyicinin kitaplık dosyalarını nerede arayacağını bilmesi için kitaplığın yolunu ayarlamamız gerekir. Bu, Windows'ta 'include' dizini veya Linux'ta '/ usr / include' olabilir.
# 4) Kütüphane yolunu bağlayın
Bu adım, bağlayıcının, bağlama işlemi sırasında bağlanması gereken kitaplıkların tam yolunu bilmesi için gerçekleştirilir. Genellikle, Windows'ta '/ lib' klasörü veya Linux'ta tüm kitaplıkları içeren '/ usr / lib' klasörü vardır.
Kitaplık yüklendikten sonra, derleyici ve bağlayıcı, kullanılacak kitaplığın yolunu bilir ve kitaplık kullanıma hazırdır. Programımızda kütüphane işlevselliğine başvurabiliriz ve başlık dosyalarını programımıza dahil ettiğimiz için derleyici işlevselliği derleyebilecektir.
Programcılar geliştirme için çoğunlukla IDE'leri kullandığından, kütüphane yolunu IDE'nin kendisinde belirliyoruz.
C ++ 'da Standart Başlıklar / Kitaplıklar
C ++ dilinin kullandığı bazı standart başlıkları veya kitaplıkları tartışalım. Bu başlıkları, C ++ eğitimlerimizdeki ilgili konularda zaten tartışmıştık.
C Standart Kitaplığı
ANSI C standardı, C standart kitaplığı veya libc C programlama dili için standart kitaplık görevi görür. C ++, C standart kitaplığındaki her başlığı, başına 'c' ekleyerek ve sonunda '.h' öğesini kaldırarak farklı bir adla içerir. Bu nedenle, C'deki xxx.h başlığı, C ++ standardında 'cxxx' olacaktır.
C standart kitaplığı, diğerleri arasında Makrolar, Dizi işleme, Matematiksel hesaplamalar Tür tanımları, Giriş / Çıkış işleme, Bellek yönetimi vb. İle ilgili işlevselliği sağlar.
Kontrol İşte C Standart Kitaplığı hakkında daha fazla bilgi için.
genel
Genel C ++ kitaplığı, aşağıda gösterildiği gibi aşağıdaki başlıkları içerir.
Başlığın Adı | Açıklama |
---|---|
Demet için işlevselliği tanımlar. C ++ 11'den itibaren mevcuttur. | |
Birçok konteyner tarafından kullanılan algoritmalar bu başlıkta tanımlanmıştır. | |
Std :: chrono :: time_point, std :: chrono :: duration ve saatler gibi zaman öğelerini içerir. | |
Bu başlık, genel algoritmalarla kullanılacak işlev nesneleri sağlar. | |
Yineleyiciler için sınıflar ve şablonlar içerir. | |
C ++ 'da bellek yönetimi işlevini tanımlar. | |
Her ikisi de std :: exception'dan türetilen std :: logic_error ve std :: runtime_error dahil olmak üzere standart istisna sınıflarını tanımlar. | |
Std :: pair vb. Şablon sınıfları veya std :: rel_ops gibi isim alanları bu başlıkta tanımlanır. |
Akışlar ve Giriş / Çıkış
Başlığın Adı | Açıklama |
---|---|
Std :: ostream şablon sınıfının ve çıktı için diğer destekleyici sınıfların işlevselliğini içerir. | |
Dosya tabanlı girdi-çıktı için işlevsellik sağlar. | |
Kesinlik, taban vb. Gibi çıktı biçimlendirme için işlevsellik içerir. | |
Iostream işlemleri için temel işlevselliği içerir. | |
G / Ç ile ilgili çeşitli sınıf şablonlarının ileri bildirimlerini sağlar. | |
C ++ giriş ve çıkış temellerini sağlar. | |
Std :: istream şablon sınıfının işlevselliğini ve girdi için diğer destekleyici sınıfları içerir. | |
Std :: stringstream şablon sınıfını ve dizge işleme için kullanılan diğer destekleyici sınıfları tanımlar. | |
Harici dosyalar veya dizeler gibi belirli karakter dizisi türlerine / türlerinden okuma ve yazma için işlevsellik içerir. |
Dil desteği
Başlığın Adı | Açıklama |
---|---|
Std :: queue, tek uçlu bir kuyruk ve bir öncelik kuyruğu olan std :: pri_queue için işlevselliği uygular. | |
Bu başlık, tüm istisnalar için temel sınıf, std :: exception dahil, istisna işleme için çeşitli tipler ve işlevler içerir. | |
Bu başlık, temel sayısal özellikleri açıklamak için kullanılan std :: numeric_limits şablon sınıfını içerir | |
Yeni ve silme operatörleri ve C ++ bellek yönetiminin temelleri ile ilgili diğer işlevleri içerir. | |
C ++ çalışma zamanı tür bilgileriyle çalışmak için olanaklar sağlar. |
Teller
Başlığın Adı | Açıklama |
---|---|
Bu başlık, C ++ 'daki standart dize sınıflarını ve şablonlarını içerir. | |
Bu, C ++ 11'de yenidir. Düzenli ifadeler kullanan desen eşleştirme dizeleri için yardımcı programlar sağlar. |
Yerelleştirme
Başlığın Adı | Açıklama |
---|---|
Bu başlığın yerel ayar işlevi vardır. Sınıfları tanımlar ve bir yerel ayara özgü bilgileri kapsülleyen ve işleyen işlevleri bildirir. | |
Çeşitli karakter kodlamaları için kod dönüştürme yönlerini içerir. |
Konteynerler
Başlığın Adı | Açıklama |
---|---|
Sabit boyutlu bir dizi için bir konteyner olan std :: array için işlevsellik içerir. C ++ 11 ve TR1'de yeni ek. | |
Özelleştirilmiş kap sınıfı std :: bitset, bir bit dizisi. | |
Çift uçlu bir kuyruk olan std :: deque için işlevsellik içerir. | |
Std :: forward_list için başlık, tek bağlantılı bir liste. C ++ 11 ve TR1'de yeni ek. | |
Çift bağlantılı bir liste olan std :: list için işlevsellik içerir. | |
Std :: map ve std :: multimap, sıralanmış ilişkisel dizi ve multimap için işlevsellik içerir. | |
Std :: set ve std :: multiset için başlığa, sıralı ilişkisel kaplara veya kümelere sahiptir. | |
Konteyner bağdaştırıcısı sınıfı std :: stack, bir yığın sağlar. | |
Bu başlık std :: unordered_map ve std :: unordered_multimap, hash tabloları işlevselliğini içerir. C ++ 11 ve TR1'deki yenilikler. | |
Std :: unordered_set ve std :: unordered_multiset için işlevsellik sağlar. C ++ 11 ve TR1'deki yenilikler. | |
Dinamik bir dizi olan std :: vector için işlevsellik sağlar. |
İş Parçacığı Destek Kitaplığı
Başlığın Adı | Açıklama |
---|---|
C ++ 11'den itibaren iş parçacıklarıyla çalışmak için yeni bir sınıf ve ad alanı. | |
C ++ 11'den sonraki yeni eklenti. Karşılıklı dışlama için tüm mekanizmalar olan muteksler, kilitler, bir kez arama vb. Sağlar. | |
Bir iş parçacığını başka bir iş parçacığı tarafından bazı koşulların karşılandığı bildirilene kadar veya bir sistem zamanına ulaşılana kadar bloke etmek için kullanılan eşitleme ilkelleri sağlayan Koşul değişkenleri için işlevsellik içerir. C ++ 11 sonrası için yeni ek. | |
Bu başlık, bir C ++ programının bir iş parçacığında almak için kullanabileceği bileşenlere ve aynı iş parçacığında veya başka bir iş parçacığında çalışan bir işlevin sonucunu (değer veya istisna) içerir. |
Sayısal Kitaplık
Başlığın Adı | Açıklama |
---|---|
Başlık, karmaşık sayıları temsil etmek ve işlemek için çeşitli işlevleri açıklar. Ayrıca karmaşık sayılar için bir sınıf şablonuna sahiptir | |
Rastgele sayılar (sözde) üretme işlevi | |
Bu başlık içerir - beş sınıf şablonu (valarray, slice_array, gslice_array, mask_array ve dolaylı_array), - iki sınıf (dilim ve gslice), - Değer dizilerini temsil etmek ve işlemek için bir dizi ilgili işlev şablonu. | |
Genel sayısal işlemleri içerir. |
Sonuç
C ++ kitaplıklarını türleriyle ve kitaplığı kurma ve kurma adımlarıyla birlikte ayrıntılı olarak tartıştık.
Standart C ++ kitaplığının farklı işlevler sağlayan çeşitli başlıklar içerdiğini öğrendik. Bu standart kitaplık başlıklarını C ++ 'da çeşitli uygulamalar geliştirmek için kullanabiliriz.
=> TÜM C ++ Öğreticilerini Buradan Kontrol Edin.
Önerilen Kaynaklar
- C ++ 'da Kitaplık İşlevleri
- Standart Şablon Kitaplığı (STL): Kısa Bir Giriş
- C ++ 'ya Tam Bir Genel Bakış
- ÜCRETSİZ C ++ Programlamayı Öğrenmek İçin 70+ EN İYİ C ++ Öğreticisi
- G / Ç formatlama: printf, sprintf, scanf İşlevleri C ++ 'da
- C ++ 'da Temel Giriş / Çıkış İşlemleri
- C ++ 'da String Fonksiyonları: getline, substring, string length & More