Kütüphane Gereksinimi
Uygulamalar temel bazı işlemlere sıklıkla ihtiyaç duymaktadır. Sık kullanılan bu rutinlerin, her seferinde uygulamaya özel yeniden yazılması yerine, bir defa yazılıp ayrı modüllerde makina kodu düzeyinde saklanması kullanım kolaylığı sağlayacaktır. Aynı kodun defalarca kullanılması hata riskini azaltmakta, kodun her seferinde derlenme zorunluluğunu ortadan kaldırmakta, ayrıca kaynak kodun gizlenerek taşınabilmesine olanak sağlamaktadır.
Örneğin, C standartları giriş/çıkış, yazı işleme ve matematiksel işlemlerle ilgili çok sayıda fonksiyon tanımlamıştır. Bu fonksiyonlar bir şekilde programcıya temin edilmelidir.
Standart fonksiyonların derleyici tarafından, içsel olarak, sağlanması bir yöntem olabilir. Örneğin derleyici sin fonksiyon çağrısıyla karşılaştığında, bu fonksiyonun standart bir fonksiyon olduğunu anlayıp, fonksiyona ilişkin makina kodunu direkt olarak kendisi yazabilir. Programcı açısından bu yöntem oldukça kullanışlı olmasına rağmen derleyiciyi yazanlar için bir takım zorluklar barındırmaktadır. Yeni bir fonksiyon eklendiğinde, çıkarıldığında veya değiştirildiğinde derleyicinin yeni bir versiyonu çıkarılmalıdır. Buna rağmen bazı standart ve standart olmayan fonksiyonlar derleyiciler tarafından eklenti olarak sağlanmaktadır. Örneğin GNU C derleyicisi çok sayıda eklenti sunmaktadır.
Kısıtlı bir kullanıma sahip bu yöntemde ihtiyaç duyulan tüm fonksiyonların derleyici tarafından sağlanması mümkün olmadığından, kütüphane kullanımı bir diğer alternatif olarak karşımıza çıkmaktadır.
Konumuzun temeli olan paylaşımlı kütüphanelerden önce, daha basit bir kullanıma sahip, statik kütüphaneleri kısaca inceleyelim.