Sự khác nhau giữa tệp DLL và tệp LIB là gì? Có gì bên trong tệp DLL và nội dung bên trong tệp LIB? Có phải cả tệp DLL và LIB cần thiết để tạo tệp thi hành không?Tệp DLL và LIB
Trả lời
Tệp DLL là sản phẩm xây dựng cuối cùng, đó là những gì bạn cài đặt trên máy của khách hàng. Nó rất giống với một tệp tin EXE, cùng một cấu trúc, nhưng có thể được nạp theo yêu cầu vào một chương trình khác.
Tệp LIB được sử dụng để tạo chương trình của bạn, tệp này chỉ tồn tại trên máy xây dựng của bạn và bạn không gửi. Có hai loại. Một thư viện liên kết tĩnh là một tập tin .obj, được thu thập thành một tệp duy nhất. Trình liên kết chọn bất kỳ đoạn mã nào từ tệp khi nó cần giải quyết một mã định danh bên ngoài.
Nhưng có liên quan hơn đến tệp DLL, tệp LIB cũng có thể là thư viện nhập. Sau đó nó là một tệp nhỏ đơn giản bao gồm tên của tệp DLL và danh sách tất cả các hàm được xuất bởi tệp DLL. Bạn sẽ cần phải cung cấp nó cho trình liên kết khi bạn xây dựng một chương trình sử dụng DLL để nó biết rằng một định danh bên ngoài thực sự là một hàm được xuất bởi tệp DLL. Trình liên kết sử dụng thư viện nhập để thêm các mục nhập vào bảng nhập khẩu cho EXE. Đó là sau đó lần lượt được sử dụng bởi Windows tại thời gian chạy để tìm ra những gì DLL cần phải được nạp để chạy chương trình.
- 1. Tệp DLL và LIB - điều gì và tại sao?
- 2. Dự án DLL không tạo tệp .exp và .lib
- 3. Tệp Header (.h), tệp Thư viện (.lib) và tệp DLL (.dll) có liên quan như thế nào
- 4. Khi xây dựng một tệp DLL, tệp LIB được tạo có chứa tên DLL không?
- 5. lib.exe, Visual Studio, tạo các tệp .lib từ tệp dll và def
- 6. Làm cách nào để có CMake tạo dll và tệp lib phù hợp?
- 7. sử dụng .exp là gì và sự khác biệt giữa .lib và .dll
- 8. Làm cách nào để xây dựng thư viện nhập (.lib) VÀ DLL trong Visual C++?
- 9. Dừng tạo .lib và .exp khi xây dựng một .dll với Visual Studio
- 10. Khả năng tương thích của * .dll * .a * .lib * .def giữa VisualStudio và gcc
- 11. Sự khác nhau giữa các tệp .dll, .lib, .h là gì?
- 12. Lib và DLL liên kết với lỗi exe "không thể đọc tại 0x300"
- 13. .lib tệp không được tạo (VS2008)
- 14. /WEB-INF/lib và/WEB-INF/lib
- 15. Magento ghi đè/lib/tệp?
- 16. Công cụ để kiểm tra các tệp .lib?
- 17. C++ tại sao không có tệp .lib được tạo?
- 18. Sự khác nhau giữa các tệp .lib và .a là gì?
- 19. Làm cách nào để tìm đường dẫn cho các tệp DLL được sử dụng bởi lib accessible_output?
- 20. Tại sao chúng ta vẫn cần tệp .lib stub khi chúng tôi có triển khai .dll thực tế?
- 21. Thêm tệp Jar vào WEB-INF/lib
- 22. Chuyển đổi một Dll Windows sang .lib cho C++ Visual Studio 2008
- 23. maven-surefire-plugin, DLL và java.library.path
- 24. Sự khác nhau giữa các tệp trợ giúp và các tệp lib trong đường ray
- 25. Plugin DLL phụ thuộc vào các tệp DLL khác
- 26. C# Tệp cấu hình DLL
- 27. Chỉ định trễ tải dll với #pragma trong tệp cpp
- 28. NuGet Assembly bên ngoài thư mục lib
- 29. Làm thế nào để cập nhật một dll C++ mà không cần phải liên kết lại tệp exe với tệp lib?
- 30. sqlite3.dll và system.data.sqlite.dll