2010-09-08 37 views

Trả lời

2

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.

0

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.

3

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.

0

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

Các vấn đề liên quan