29
Eki
Yazılım kütüphaneleri, daha sonra yeni geliştirilecek yazılımlara dahil edilmek üzere saklanan derlenmiş hazır kod ve veri dosyalarıdır. Bazı sebeplerden dolayı kütüphaneler önceden derlenmiş olarak bulunurlar. İlk sebep, kütüphanelerin nadiren değişmesidir. Kullanıldıkları her bir program için kütüphanelerin yeniden derlenmesi vakit kaybı olurdu. İkinci bir sebep de derlenmiş (makine koduna dönüştürülmüş) oldukları için dışarıdan müdahale edilememesidir. Bu da iş dünyası söz konusu olduğunda ya da kişiler çeşitli sebeplerle kodlarını açmak istemediklerinde önem kazanmaktadır.

    Statik Kütüphaneler
Statik kütüphaneler, yeniden derlenmeye ihtiyaç duymaksızın yazılıma derleme aşamasında yani çalıştırılmadan önce eklenir. Bir programı statik kütüphane kullanacak şekilde derlediğinizde, programının kütüphanenin bütün işlevselliğine sahip olur. Statik kütüphane dosyalarının uzantıları ".a" şeklindedir. Statik kütüphaneleri kullanmanın bir avantajı programınızı tek bir çalıştırılabilir dosya şeklinde dağıtmanızı sağlamasıdır. Ayrıca kütüphane, programınızın bir parçası olduğu için her zaman doğru versiyonun kullanıldığından emin olursunuz. Diğer taraftan kütüphanenin her programa eklenmesi hafıza israfına yol açmaktadır. Ayrıca statik kütüphanelerin güncellenmesi de pek kolay değildir. Bunun için tüm programın yeniden derlenmesi gerekir.

    Dinamik Kütüphaneler
Dinamik (shared-paylaşımlı) kütüphaneler ise programa çalışma sırasında dahil edilirler. Programınızı dinamik kütüphane kullanacak şekilde derlediğinizde, kütüphane programa o anda dahil edilmez, programa kod eklenmez. Uzantıları ".so" şeklindedir. Bu şekilde farklı programlar aynı kütüphaneyi ortak olarak kullanırlar ve bu sayede program boyutları daha küçülmüş olur. Ayrıca güncelleme yapmak için de kütüphaneyi kullanan tüm programların yeniden derlenmesi gerekmeyeceği için işlem daha kolaydır.

Kaynaklar:http://www.belgeler.org/howto/gcc-baslangic-libs.html
http://www.learncpp.com/cpp-tutorial/a1-static-and-dynamic-libraries/
30
Oca

Şu günlerde bazı açık kaynak projelerin kurulum dökümanlarına ve başlangıç betiklerine bakarken karşıma ‘glob’ isimli bir modül geldi. Meğerse ne şahane bir şeymiş, haberim yok. Efendim glob ile istediğiniz dosyaları uzantılarına göre dosya yakayalabiliyorsunuz. Nasıl mı ? Şöyle:

import glob
pdfdosya = glob.glob('/home/tdgunes/*.pdf')

ile pdf dosyalarınızı bulabilirsiniz. Eğer betiği çalıştırdığınız noktadaki dosyaları bulacaksanız yapmanız gereken

import glob, os
pdfdosya = glob.glob(os.getcwd() + '/*.pdf')

Kurulum betiklerinde genellikle .ui, .qrc gibi dosyaların derlenmesinden önce dosyaların bulunması için kullanılıyormuş. İsterseniz güzel bir betikle tüm diskteki .pdf dosyalarını da bulabilirsiniz.

Python ile dosya bulmakta böylece kolay oldu.