Hai bit nhanh của tôi về điều này: 10 (xin lỗi trò đùa khủng khiếp).
Để mở rộng một chút, ở đây đi:
1- Thư viện tĩnh có thể phụ thuộc vào thư viện tĩnh khác, không có gì hoặc thậm chí là thư viện động: trong hai trường hợp đầu tiên, tất cả mã cho thư viện tĩnh mới sẽ được kết hợp trong SLL mới (Thư viện liên kết tĩnh), tuy nhiên, tùy chọn thứ 3 , tùy thuộc vào sự lảng tránh có thể dẫn đến SLL có một trong những kết quả sau đây,
- nó sẽ chứa các phiên bản tĩnh của mã được yêu cầu bởi nó được thu thập từ DLL (Thư viện liên kết động)
- hoặc khủng khiếp hơn nhiều, bạn sẽ có một thư viện tĩnh mà khi đưa vào một dự án sẽ gây ra yêu cầu vận chuyển với một DLL, phá vỡ toàn bộ điểm liên kết tĩnh.
Vì vậy, trong ngắn hạn, bạn có thể liên kết thư viện tĩnh với thư viện tĩnh
2- nếu lib1 và lib2 đều tĩnh và lib1 đã được liên kết với lib2, thì tất cả chức năng của lib2 sẽ có sẵn trong lib1 mà không cần bao gồm lib2 vì lib2 sẽ được liên kết tĩnh trong lib1 (nghĩ là búp bê Nga, với lib2 là nhỏ hơn).
Trong kịch bản bạn mô tả phải có chức năng riêng biệt có sẵn trong mỗi tệp bạn phải đưa vào, không được liên kết tĩnh, do đó cần nhiều tệp, nếu không bạn sẽ có một tệp duy nhất để bao gồm và bạn sẽ ổn.
Thực hiện như sau: Một tệp .h có tham chiếu đến 6 thư viện được liên kết tĩnh: bạn sẽ cần bao gồm 7 tệp trong dự án của mình để có đầy đủ chức năng
Một SLL được tạo từ tệp .h đã nói sẽ chỉ yêu cầu SLL mới được đưa vào để liên kết khi biên dịch:
Hy vọng điều này sẽ giúp và tôi đã hiểu những gì bạn đang hỏi.