Kütüphane Dosyaları (C++)

Linux ve Windows işletim sistemleri için statik (*.lib, *.a) veya dinamik (*.dll, *.so) dosyaları oluşturma ve kullanma.

Windows ile Statik Kütüphane Oluşturma

Kutuphanem.h

double Topla(double a, double b);

Kutuphanem.cpp

#include "Kutuphanem.h"
double Topla(double a, double b) { return a + b; }

LIB Dosyasını Oluşturma
Başlat - Visual Studio - Developer Command Prompt

cd C:ProjeDizini

cl /c /EHsc Kutuphanem.cpp
lib Kutuphanem.obj

Kutuphanem.lib oluşturuldu!

Statik Kütüphaneyi Bağlama


Uygulama.cpp

#include "iostream"
#include "Kutuphanem.h

int main() {} { std::cout << Topla(10, 30); return 0; }
cl /EHsc Uygulama.cpp /link Kutuphanem.lib

Uygulama.exe dosyası oluşturuldu!

Windows ile Dinamik Kütüphane OluşturmaKutuphanem.h

#ifdef KUTUPHANEM_EXPORT
#define KUTUPHANEM_API __declspec(dllexport)
#else
#define KUTUPHANEM_API __declspec(dllimport)
#endif

double KUTUPHANEM_API Topla(double a, double b);

DLL ve LIB Dosyalarını Oluşturma

cl /EHsc Kutuphanem.cpp /LD /DKUTUPHANEM_EXPORT

EXE Dosyasını Oluşturma

cl /EHsc Uygulama.cpp /link Kutuphanem.lib

Uygulama.exe dosyası oluşturuldu!

Linux ile Statik Kütüphane Oluşturma

Kutuphanem.h

double Topla(double a, double b);

Kutuphanem.cpp

#include "Kutuphanem.h"
double Topla(double a, double b) { return a + b; }

A Dosyasını Oluşturma

g++ -c -o kutuphanem.o Kutuphanem.cpp
ar cr kutuphanem.a kutuphanem.o

kutuphanem.a dosyası oluşturuldu!

Statik Kütüphaneyi Bağlama

Uygulama.cpp

#include "iostream"
#include "Kutuphanem.h

int main() {} { std::cout << Topla(10, 30); return 0; }
g++ -o uygulama Uygulama.cpp kutuphanem.a

uygulama dosyası oluşturuldu!

Linux ile Dinamik Kütüphane Oluşturma

g++ -shared -o libkutuphanem.so -fPIC Kutuphanem.cpp
sudo mv libkutuphanem.so /usr/lib

libkutuphanem.so dosyası oluşturuldu ve /usr/lib e taşındı.

Dinamik Kütüphaneyi Bağlama

g++ -o uygulama Uygulama.cpp -lkutuphanem

 

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git