From: Enver ALTIN (enver.altin@frontsite.com.tr)
Date: Mon 05 May 2003 - 00:27:54 EEST
On Sun, 2003-05-04 at 03:45, ALI GUNHAN AKYUREK wrote:
> Merhaba.
Merhaba,
> programımda bu kütüphaneden bir fonksiyon kullanırım ve bu *.lib
> dosyasındaki ilgili kod benim programıma yerleştirilirdi.Program kendi
> kendine çalışabilirdi.Birde çalışırken *.dll e ihtiyac duyan uygulamalar
> olabiliyordu.Sormak istediğim bunlar linuxde nasıl yer alıyorlar.dosya
> tipleri nelerdir.
Linking (baglama) iki turlu gerceklestirilebilir:
* Static linking: Compile-time (derlenme esnasinda)
gerceklestirilir. Bir .a dosyasi, ELF binary icerisine eklenir.
Bu dosya icerisindeki symbol table, ELF symbol table ile
birlestirilir ve ihtiyaciniz olacak fonksiyonlar bu yolla
adreslenir ve cagrilabilir. Bu bicimde derlediginiz yazilim,
sistemde bu kutuphanenin bulunmasini gerektirmez.
* Dynamic linking: Runtime (calisma esnasinda) Linux linker
(/lib/ld-linux.so.2) tarafindan cesitli diger araclarin da
yardimiyla (ldconfig, /etc/ld.so.cache, /etc/ld.so.conf)
gerceklestirilir, ancak derleme ve baglama esnasinda symbol
table edinilecek kutuphanelerin belirtilmesi de gereklidir. Bu
bicimde derlediginiz yazilim, sistemde ilgili kutuphanenin .so
dosyalarinin bulunmasina gereksinim duyacaktir.
gcc ile statik derlemek icin -L, dinamik derlemek icin -l anahtarlari
kullanilir. Ornegin math.h kullandiginiz bir proje, libm.so kutuphanesi
icerisindeki fonksiyonlara baglanti kurar. deneme.c dosyanizi derlemek
icin:
gcc -o deneme -lm deneme.c
kullanabilirsiniz.
Saygilar
-- -------------------------------------------------------------------- Enver ALTIN (a.k.a. skyblue) - enver.altin@frontsite.com.tr Software developer, IT consultant frontsite Bilgi Teknolojisi A.S. tel: +90 212 222 68 42 - 63 fax: +90 212 222 68 35 -------------------------------------------------------------------- -- Attached file included as plaintext by Ecartis -- -- File: signature.asc -- Desc: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+tYXYbBGEy3UvbLoRAsdKAJ9fBgOwpDDEQL+9irXqW4Gsn5j8eQCfWjHU M+XALyx3PODVYgnYaWxTzJs= =5H0p -----END PGP SIGNATURE-----