Sekarang, saya menemukan semua ini dijelaskan dengan sangat baik dalam artikel yang bagus ini:
Hubungan statis dan dinamis
Ada dua jenis executable biner: yang terhubung secara statis dan yang terhubung secara dinamis. Pertama tentang yang terhubung secara statis : Ketika suatu program ingin memanggil fungsi pustaka, itu merujuknya dengan nama. Saat membangun program dari sumber, semua fungsi perpustakaan yang digunakan dalam program disalin dari perpustakaan ke dalam program. Program kemudian berisi kode sendiri serta kode fungsi perpustakaan yang digunakannya. Kemudian di tempat panggilan nama diubah ke alamat fungsi yang sesuai dalam program. Proses ini disebut penghubungan karena menghubungkan nama suatu fungsi dengan fungsi itu sendiri, implementasinya. Disebut statis , karena tautannya tidak dapat diubah setelah program dibuat.
Program yang terhubung secara dinamis bekerja secara berbeda: Program ini juga merujuk ke fungsi perpustakaan berdasarkan nama. Saat membangun program, dua daftar disusun dan disimpan bersama dengan program: daftar fungsi perpustakaan mana yang digunakan di tempat mana, dan daftar perpustakaan yang berisi fungsi yang digunakan oleh program. Itu semua untuk membangun program.
Kemudian, pada waktu eksekusi , program pembantu khusus, yang disebut penghubung dinamis, mencari tempat-tempat tertentu dalam sistem file untuk setiap pustaka pada daftar pustaka dan memuatnya ke dalam memori. Sekarang penghubung dinamis tahu di alamat memori apa fungsi perpustakaan tersedia. Ini menggunakan daftar pertama untuk menulis alamat yang benar di semua tempat yang memanggil fungsi perpustakaan. Kemudian program yang terhubung secara dinamis dapat dijalankan.