Tôi đã có một thư viện chia sẻ với một số chức năng tự chế, mà tôi biên dịch vào các chương trình khác của mình, nhưng tôi phải liên kết chương trình kết thúc với tất cả các thư viện mà tôi đã sử dụng để biên dịch thư viện tĩnh. Dưới đây là ví dụ:Biên dịch một thư viện chia sẻ tĩnh
Tôi có chức năng foo
trong thư viện yêu cầu chức năng từ thư viện khác libbar.so
.
Trong chương trình chính của tôi để sử dụng chức năng foo
Tôi phải biên dịch nó với cờ -lbar
. Có cách nào tôi có thể biên dịch thư viện tĩnh của tôi để nó bao gồm tất cả mã bắt buộc từ các thư viện khác và tôi có thể biên dịch chương trình kết thúc của mình mà không cần cờ -lbar
không?
Ông có thể nói rõ những nền tảng được sử dụng? Lý tưởng nhất, họ sẽ có trong các thẻ. –
chạy trên linux –
Ghi chú bên; không chỉ bạn sẽ không phải -bar, nhưng một khi bạn bắt đầu, linker của bạn sẽ thả tất cả các biểu tượng * mã * của bạn không tham chiếu (trực tiếp hoặc gián tiếp xuống qua chuỗi cuộc gọi của bạn). Điều này sẽ thu nhỏ tệp thực thi của bạn và giúp ứng dụng của bạn khởi động nhanh hơn! – Armentage