Trong ngôn ngữ C sự khác nhau giữa thư viện tĩnh và thư viện động là gì?Sự khác biệt giữa thư viện tĩnh và thư viện động
Trả lời
Câu hỏi này hơi quá rộng để giải thích, nhưng tôi sẽ cố gắng cung cấp cho bạn một ý tưởng cơ bản mà từ đó bạn có thể nghiên cứu thêm.
Thứ nhất, bạn cần biết thư viện là gì. Về cơ bản, một thư viện là một tập hợp các hàm. Bạn có thể nhận thấy rằng chúng tôi đang sử dụng các hàm không được xác định trong mã của chúng tôi hoặc trong tệp cụ thể đó. Để có quyền truy cập vào chúng, chúng tôi bao gồm một tệp tiêu đề, có chứa các khai báo của các hàm đó. Sau khi biên dịch, có một quá trình được gọi là liên kết, liên kết các khai báo hàm đó với các định nghĩa của chúng, nằm trong một tệp khác. Kết quả của việc này là tệp thực thi thực tế.
Bây giờ, liên kết như tôi đã mô tả là liên kết tĩnh. Điều này có nghĩa là mọi tập tin thực thi có trong nó mọi thư viện (tập hợp các hàm) mà nó cần. Đây là một sự lãng phí không gian, vì có nhiều chương trình có thể cần các chức năng tương tự. Trong trường hợp này, trong bộ nhớ sẽ có nhiều bản sao của cùng một chức năng. Liên kết động ngăn chặn điều này, bằng cách liên kết tại thời gian chạy, không phải lúc biên dịch. Điều này có nghĩa là tất cả các chức năng đều nằm trong một không gian bộ nhớ đặc biệt và mọi chương trình đều có thể truy cập chúng, mà không cần nhiều bản sao của chúng. Điều này làm giảm lượng bộ nhớ cần thiết.
Như tôi đã đề cập ở phần đầu của câu trả lời của tôi, đây là một lời giải thích rất đơn giản để cung cấp cho bạn một sự hiểu biết cơ bản. Tôi đề nghị bạn nên nghiên cứu thêm về chủ đề này.
Ngắn gọn và được giải thích rõ ràng. Cảm ơn bạn! – SRG
Trong cửa sổ:
Thư viện tĩnh là tệp .lib sẽ được liên kết bên trong tệp thực thi của bạn và sẽ không thay đổi theo thời gian.
Thư viện động là một tệp .dll được liên kết với tệp thi hành của bạn và có thể thay đổi tùy thuộc vào tệp dll bạn tải khi bạn thực thi nó.
Không chắc tôi có dll trong Linux. – Daniel
- 1. Sự khác biệt giữa thư viện và thư viện gốc
- 2. Sự khác biệt giữa thư viện tĩnh và động trong Xcode cho iPhone
- 3. Sự khác biệt giữa thư viện lớp và thư viện lớp ASP.NETvNext?
- 4. Sự khác biệt giữa thư viện chuẩn C và thư viện C POSIX
- 5. Sự khác biệt giữa thư viện và mã ứng dụng?
- 6. Thư viện tĩnh & Thư viện động: Lẫn lộn
- 7. Sự khác biệt giữa các thư viện tĩnh và chia sẻ trong NDK của Android?
- 8. Sự khác nhau giữa thư viện chuẩn và thư viện mẫu chuẩn là gì?
- 9. sự khác nhau giữa plugin và thư viện là gì?
- 10. Trộn các thư viện tĩnh và thư viện chia sẻ
- 11. Sự khác nhau giữa thư viện tĩnh và tệp đối tượng có thể định vị lại?
- 12. Sự khác nhau giữa Thư viện C/C++ và Thư viện STL C++ trong XCode là gì?
- 13. Sự khác biệt giữa mục tiêu IMPORTED và thư viện INTERFACE là gì?
- 14. Liên kết các thư viện tĩnh, chia sẻ một thư viện tĩnh khác
- 15. sự khác biệt giữa các thư viện và người trợ giúp trong khung php
- 16. khác biệt trong .NET Nghị định thư Buffer thư viện
- 17. Sự khác nhau giữa các thư viện tĩnh và chia sẻ?
- 18. Có gì bên trong tệp .lib của thư viện tĩnh, thư viện động được liên kết tĩnh và thư viện động được liên kết động?
- 19. Sự khác nhau giữa Thư viện kiểm soát người dùng và Thư viện điều khiển tùy chỉnh là gì?
- 20. Thư viện tĩnh và -weak-lSystem
- 21. C/C++: Sự khác biệt giữa thư viện liên kết tĩnh và tệp đối tượng là gì?
- 22. Sự khác biệt giữa Mô-đun và Thư viện trong JavaScript
- 23. Sự khác biệt giữa mixin() và extend() trong thư viện Javascript
- 24. Sự khác biệt giữa Kiểm soát Người dùng và Thư viện Điều khiển Tùy chỉnh
- 25. Sự khác biệt giữa tệp jar và thư viện trong Java
- 26. Sự khác biệt giữa việc trích xuất và đóng gói thư viện thành tệp jar
- 27. Có sự khác biệt nào giữa thư viện Q Promise's .finally() và .done()?
- 28. Sự khác biệt giữa tệp đối tượng .o và tệp thư viện .so là gì?
- 29. Xây dựng thư viện tĩnh
- 30. Từ thư viện tĩnh MinGW (.a) đến thư viện tĩnh Visual Studio (.lib)
Hãy thử điều này [http://stackoverflow.com/questions/20229364/what-is-the-difference-between-a-static-library-and-a-dynamic-one][1] [1]: http://stackoverflow.com/questions/20229364/what-is-the-difference-between-a-static-library-and-a-dynamic-one – Stef