C++ Kütüphaneleri Yazma ve Kullanma: Adım Adım Rehber

C++‘ta kütüphane oluşturmak ve kullanmak, modüler ve yeniden kullanılabilir kod yazmak isteyen geliştiriciler için temel bir beceridir. Bu blog yazısı, C++ kütüphanelerini yazma, derleme ve entegre etme sürecinde size rehberlik edecektir. Özellikle hem Linux hem de Windows ortamları için paylaşılan kütüphanelere odaklanacağız. Bu konuyu anlaşılır kılacak basit örnekler ve net açıklamalar için okumaya devam edin.

C++ Kütüphanelerini Anlamak

C++ Kütüphaneleri Nedir?

C++ kütüphaneleri, projelerinize dahil edebileceğiniz, işlevselliği yeniden kullanmak için kodu yeniden yazmadan kullanmanıza olanak tanıyan önceden derlenmiş kod koleksiyonlarıdır. C++‘ta iki ana kütüphane türü vardır:

  • Statik Kütüphaneler: Bunlar derleme zamanında bağlantılıdır ve çalıştırılabilir dosyanın bir parçası haline gelir. Linux’ta genellikle .a uzantısına, Windows’ta ise .lib uzantısına sahiptir.
  • Dinamik Kütüphaneler: Bunlar çalışma zamanında bağlantılıdır. Linux’ta .so uzantısına sahipken, Windows’taki karşılıkları .dll‘dir.

Bu yazıda, dinamik kütüphaneler oluşturmaya ve kullanmaya odaklanacağız.

C++‘ta Dinamik Kütüphane Oluşturma

Adım 1: Kütüphane Kodunuzu Yazın

Basit bir örnekle başlayalım. Bir mesaj yazdıracak bir fonksiyon içeren bir kütüphane oluşturmak istiyoruz.

  1. Başlık dosyasını (t.h) oluşturun:

    void f();
    
  2. Kaynak dosyasını (t.cc) oluşturun:

    #include <iostream>
    #include "t.h"    
    
    void f() {
        std::cout << "OH HAI.  BEN F." << std::endl;
    }
    

Adım 2: Kodu Paylaşılan Kütüphane Olarak Derleyin

Artık kütüphane kodumuz hazır, bunu paylaşılan bir kütüphane olarak derleyeceğiz. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  1. Kaynak kodunu nesne koduna derleyin:

    g++ -fpic -c t.cc         # t.o üretir
    
  2. Paylaşılan kütüphaneyi oluşturun:

    g++ -shared -o t.so t.o   # t.so üretir
    

Adım 3: Kütüphaneyi Ana Programınızda Kullanın

Şimdi, oluşturduğumuz kütüphaneyi kullanacak bir ana uygulama oluşturalım.

  1. Ana dosyayı (r.cc) oluşturun:
    #include "t.h"
    
    int main() {
        f(); // Kütüphanedeki fonksiyonu çağır
        return 0;
    }
    

Adım 4: Uygulamanızı Kütüphane ile Derleme ve Bağlama

Ana programı paylaşılan kütüphane ile derlemek için şu komutu kullanın:

g++ r.cc t.so -o mainApp

Adım 5: Kütüphane Yolunu Ayarlayın (Yalnızca Linux İçin)

Linux’ta programın çalışma zamanında paylaşılan kütüphaneyi bulmasını sağlamak için LD_LIBRARY_PATH‘i mevcut dizini içerecek şekilde ayarlayın:

export LD_LIBRARY_PATH="."

Paylaşılan kütüphaneyi global bir kütüphane dizinine kurduysanız bu adımı çalıştırmanıza gerek yoktur.

Son Adım: Uygulamanızı Çalıştırın

Derlemeden sonra uygulamanızı çalıştırabilirsiniz:

./mainApp

Çıktıda şunu görmelisiniz:

OH HAI.  BEN F.

Anahtar Adımların Özeti

  • Kütüphane fonksiyonlarınız için bir başlık dosyası oluşturun.
  • Uygulamayı bir kaynak dosyasında yazın.
  • Kaynak dosyasını nesne dosyasına derleyin.
  • Nesne dosyasından bir paylaşılan kütüphane oluşturun.
  • Ana bir uygulama yazın ve kütüphaneye karşı bağlayın.
  • Uygulamanızın çalışma zamanında kütüphaneyi bulduğundan emin olun.

Bu adımları takip ederek, kendi C++ kütüphanelerinizi başarıyla oluşturabilir ve bunları kullanabilirsiniz, bu da düzenli ve yeniden kullanılabilir kod yazmanızı sağlar. Bu beceri, C++ programlama uygulamalarınızı geliştirmek isteyen her geliştirici için paha biçilmezdir.

Artık kendi dinamik kütüphanelerinizi keşfetmeye ve yaratmaya hazırsınız. İyi kodlamalar!