Bağlama statik veya dinamik olarak yapılabilir. Statik bağlama sonucunda bağlanan kütüphaneler çalıştırılabilir dosyanın bir parçası olur ve program çalıştırılmak istendiğinde kütüphanelerin orada bulunması gerekmez, ancak bu aynı zamanda daha büyük bir çalıştırılabilir dosya boyu demektir.
Dinamik bağlamada kütüphaneler çalıştırılabilir dosyanın bir parçası olmaz, bunun yerine oluşturulan object dosyalarına gerekli kütüphaneler için bilgiler bırakılır ve program çalıştırılırken bu kütüphaneler belleğe yüklenir. Dinamik bağlamayla farklı çalıştırılabilir dosyalar belleğe yüklenen aynı kütüphaneyi kullanabilir (paylaşabilir). Bu daha az çalştırılabilir dosya boyu demektir, ancak paylaşılmış kütüphane orada değilse program çalıştırılamayacaktır[1].