là có thể nhập mô-đun từ thư viện .lib sang chương trình Python (đơn giản như .dll) không?Thư viện tĩnh (.lib) với dự án Python
Trả lời
Thật không may, không. Thư viện liên kết động được yêu cầu để tải thời gian chạy.
Bạn có quyền truy cập vào mã nguồn không? Hoặc ít nhất là một tập tin tiêu đề? Nếu bạn làm như vậy, bạn có thể tạo một thư viện chia sẻ hoặc một phần mở rộng Python có liên kết đến thư viện. Kể từ khi bạn đề cập đến DLL, tôi sẽ giả sử bạn đang làm việc trên Windows. This tutorial có thể hữu ích.
Về lý thuyết, có; trong thực tế, có thể không - và chắc chắn không đơn giản như một DLL. Thư viện tĩnh về cơ bản chỉ là tập hợp các tệp đối tượng và cần một trình liên kết đầy đủ để giải quyết chính xác tất cả các tham chiếu di chuyển mà chúng có thể chứa. Có thể lấy thư viện tĩnh của bạn và chỉ cần liên kết nội dung của nó để tạo một thư viện chia sẻ, nhưng điều đó sẽ yêu cầu thư viện tĩnh đã được xây dựng như mã độc lập vị trí (PIC), không được bảo đảm. Về lý thuyết, không có lý do nào mà công việc mà một mối liên kết đầy đủ sẽ thực hiện để liên kết thư viện không thể được thực hiện trong thời gian chạy, nhưng trong thực tế không có mã nào có sẵn để làm như vậy. Lựa chọn thực sự tốt nhất của bạn có lẽ là theo dõi nguồn hoặc phiên bản được chia sẻ của thư viện.
Bạn có thư viện tĩnh hay bạn có tệp .lib và giả sử rằng đó là thư viện tĩnh? Trên Windows, thư viện .lib có thể là thư viện nhập hoặc thư viện tĩnh. Thư viện nhập được tạo cùng với dll cùng tên (ví dụ: kernel32.dll và kernel32.lib). Nó được sử dụng tại thời gian liên kết để điền bảng địa chỉ nhập của tệp thực thi. Một thư viện tĩnh chứa mã sẽ được sao chép vào tệp thực thi tại thời gian liên kết.
Nếu bạn có quyền truy cập vào trình biên dịch, một tùy chọn khác có thể là tạo mô-đun mở rộng sử dụng thư viện tĩnh. Để biết thêm chi tiết, hãy xem the Python docs
- 1. Cách tạo thư viện tĩnh từ dự án Xcode?
- 2. Từ thư viện tĩnh MinGW (.a) đến thư viện tĩnh Visual Studio (.lib)
- 3. Thư viện tĩnh C++ - cách tạo tệp .a từ .lib?
- 4. Ant xây dựng dự án Android với phụ thuộc lib
- 5. tạo một thư viện tĩnh từ toàn bộ dự án với cmake
- 6. Xây dựng một dự án với Ant bao gồm ActionbarSherlock như một dự án thư viện
- 7. Dự án C++ biên dịch thành lib tĩnh, không thành công (lỗi liên kết) dưới dạng lib động. tại sao?
- 8. dự án thư viện android obfuscation
- 9. Liên kết các thư viện tĩnh, chia sẻ một thư viện tĩnh khác
- 10. python tải c lib với CDLL, không thấy thư viện trong đường dẫn python
- 11. CMake: nhiều tiểu dự án sử dụng cùng một thư viện tĩnh
- 12. ASP.NET giải pháp với dự án thư viện lớp
- 13. Trộn các thư viện tĩnh và thư viện chia sẻ
- 14. Thêm thư viện bên ngoài vào dự án Symfony2
- 15. Xây dựng thư viện tĩnh
- 16. 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?
- 17. Netbeans: làm thế nào để đưa vào dự án thư viện tĩnh C++ khác?
- 18. Tạo một dự án, từ Makefile đến các thư viện tĩnh/động trong UNIX
- 19. Cách thêm thư viện vào dự án Eclipse
- 20. Cách thêm thư viện vào dự án eclipse C?
- 21. dự án có nguồn gốc Android tham khảo chia sẻ thư viện từ C++ Dự án thư viện
- 22. Sử dụng thư viện tĩnh và các sản phẩm bó từ Xcode 4 tiểu dự án
- 23. Thay đổi Loại dự án từ "Thực thi" thành "Thư viện tĩnh" trong Eclipse CDT
- 24. liên kết với thư viện tĩnh 0MQ trong VS
- 25. Có thể liên kết Thư viện tĩnh C++ với thư viện được chia sẻ không?
- 26. Kiểm tra đơn vị với một thư viện tĩnh
- 27. Thêm dự án thư viện android vào dự án android ngăn Ant xây dựng
- 28. Tạo thư viện tĩnh và liên kết với thư viện đó bằng tiền tố
- 29. Chuyển đổi dự án hiện có thành dự án thư viện trong Android Studio
- 30. Thư viện tĩnh & Thư viện động: Lẫn lộn