
Đã bao giờ bạn vô tình gặp phải lỗi máy tính báo thiếu file có đuôi là .dll hay thiếu file .lib ? Đã bao giờ bạn thắc các file .dll hay .lib là gì chưa ? Semicon xin chia sẻ với các bạn, các file đó chính là các file thư viện liên kết động và các file thư viện liên kết tĩnh. Vậy thư viện liên kết động là gì ? Hay thư viện liên kết tĩnh là gì ?
Thư viện liên kết động ( Dynamic Link Library )
Thư viện liên kết động, Dynamic Library, là file, thư viện chứa các mã nguồn, hàm, dữ liệu sẽ được tải vào chương trình ( executable ) lúc runtime. Nhiều chương trình có thể cùng lúc sử dụng 1 thư viện, vì thế nó còn được gọi là Shared Library. Trong Window, thư viện liên kết động sẽ có đuôi là .dll; trong khi trong Linux thì nó sẽ có đuôi là .so; còn trên hệ điều hành MacOS thì thư viện liên kết động sẽ có đuôi là .dylib
Ưu điểm:
- Giảm không gian sử dụng bộ nhớ
- Có thể đóng gói và đưa vào chương trình khác
- Dễ nâng cấp chương trình, ứng dụng. Khi nâng cấp/ thay đổi, chỉ cần thay file .dll cũ bằng file .dll mới
- Có khả năng tương tác giữa các ngôn ngữ lập trình
Nhược điểm:
- Chương trình, ứng dụng sẽ không thể chạy khi thiếu 1 file .dll nhất định
- Chương trình sử dụng thư viện động thường chạy chậm hơn những chương trình sử dụng thư viện tĩnh
Thư viện liên kết tĩnh ( Static Link Library )
Giống như thư viện động, thư viện tĩnh là 1 file chứa mã, các đoạn nhị phân được dùng để chạy chương trình. Khác với thư viện động, khi các chương trình chạy hay được dịch sang mã nhị phân, chúng sẽ sao chép các đoạn mã có sẵn trong thư viện tĩnh vào trong mã nguồn của mình và chạy như thư viện là 1 phần của chương trình. Trong window, thư viện tĩnh có đuôi là .lib, còn trong Linux là .a.
Ưu điểm:
- Các chương trình sử dụng thư viện tĩnh thông thường sẽ chạy rất nhanh bởi chúng không mất thời gian để mở thư viện ra mà dịch
- Các chương trình có thể chạy độc lập mà không cần file đính kèm
- Dễ thực hiện
Nhược điểm:
- Do khi chạy, các chương trình sẽ copy toàn bộ thư viện, kích thước của các chương trình/ ứng dụng sẽ phình to, dẫn tới tốn bộ nhớ
- Khi thay đổi/ nâng cấp thư viện thì cần chỉnh lại toàn bộ các file chương trình
Như nêu trên, mỗi loại thư viện đều có ưu và nhược điểm khác nhau. Tùy thuộc vào mục đích sử dụng mà chúng sẽ được sử dụng khác nhau.
Bạn Có Đam Mê Với Vi Mạch hay Nhúng - Bạn Muốn Trau Dồi Thêm Kĩ Năng
Mong Muốn Có Thêm Cơ Hội Trong Công Việc
Và Trở Thành Một Người Có Giá Trị Hơn