Bây giờ, tôi tìm thấy tất cả những điều này được giải thích rất tốt trong bài viết tốt đẹp này:
Liên kết tĩnh và động
Có hai loại thực thi nhị phân: liên kết tĩnh và liên kết động. Đầu tiên về những cái được liên kết tĩnh : Khi một chương trình muốn gọi một hàm thư viện, nó gọi nó theo tên. Khi xây dựng chương trình từ nguồn, tất cả các chức năng thư viện được sử dụng trong chương trình được sao chép từ thư viện vào chương trình. Chương trình sau đó chứa mã riêng cũng như mã của các chức năng thư viện mà nó sử dụng. Sau đó, trong các vị trí gọi, tên được thay đổi thành địa chỉ của hàm tương ứng trong chương trình. Quá trình này được gọi là liên kết vì nó liên kết với nhau tên của một chức năng với chính chức năng đó, việc thực hiện nó. Nó được gọi là tĩnh , vì liên kết không thể thay đổi sau khi chương trình được xây dựng.
Các chương trình được liên kết động hoạt động khác nhau: Chương trình cũng đề cập đến các chức năng của thư viện theo tên. Khi xây dựng chương trình, hai danh sách được tập hợp và lưu trữ cùng với chương trình: danh sách các chức năng thư viện được sử dụng ở nơi nào và danh sách các thư viện chứa các chức năng được sử dụng bởi chương trình. Đó là tất cả để xây dựng chương trình.
Sau đó, tại thời điểm thực hiện , một chương trình trợ giúp đặc biệt, được gọi là trình liên kết động, sẽ tìm ở những vị trí cụ thể trong hệ thống tệp cho mỗi thư viện trong danh sách thư viện và tải nó vào bộ nhớ. Bây giờ trình liên kết động biết tại bộ nhớ nào có chức năng thư viện. Nó sử dụng danh sách đầu tiên để viết địa chỉ chính xác ở tất cả các nơi gọi hàm thư viện. Sau đó, chương trình liên kết động có thể được chạy.