Thư viện tĩnh không được liên kết. Chúng chỉ là một tập hợp các tệp đối tượng (* .obj hoặc * .o) được lưu trữ cùng nhau thành một tệp thư viện (giống như tệp tar/zip) để giúp trình liên kết tìm thấy các ký hiệu cần thiết dễ dàng hơn.
Một lib tĩnh có thể gọi hàm không được xác định (nhưng chỉ được khai báo trong tệp tiêu đề), vì nó chỉ được biên dịch. Sau đó, khi bạn liên kết một exe hoặc dll sử dụng lib tĩnh, bạn sẽ phải liên kết với một thư viện khác cung cấp được gọi từ lib tĩnh nhưng không được định nghĩa trong nó.
Nếu bạn muốn người liên kết tự động liên kết các thư viện khác, đề xuất của Stephen sẽ hoạt động và được sử dụng bởi các thư viện rất có uy tín như tăng cường và lưu trữ. Để làm điều này, hãy đặt pragma trong tệp tiêu đề chính cho thư viện tĩnh. Bạn nên bao gồm thư viện tĩnh và người phụ thuộc của nó.
Tuy nhiên IMO tính năng này thực sự có nghĩa là cho các nhà văn thư viện, nơi thư viện nằm trong đường dẫn thư viện hệ thống để người liên kết dễ dàng tìm thấy nó. Ngoài ra trong trường hợp tăng và stlport họ sử dụng tính năng này để hỗ trợ nhiều phiên bản của cùng một thư viện với các tùy chọn được xác định với #define
s nơi các tùy chọn khác nhau yêu cầu các phiên bản khác nhau của thư viện được liên kết. Điều này có nghĩa là người dùng ít có khả năng cấu hình tăng một chiều và liên kết với một thư viện được cấu hình khác.
Tùy chọn của tôi cho mã ứng dụng là liên kết rõ ràng các phần bắt buộc.
Tôi đồng ý rằng bạn nên cẩn thận với các phụ thuộc thư viện, nhưng tôi nghĩ LoadLibrary là quá mức cần thiết trong trường hợp này.Tôi chỉ yêu cầu nó cho kiến trúc kiểu plugin. – iain