Thực ra, LGPL cho phép liên kết tĩnh miễn là bạn đáp ứng một vài yêu cầu rất cụ thể. Ví dụ: nếu tất cả phân phối được thực hiện từ trang web của bạn nơi bạn có StaticProgram.exe, bạn sẽ không sao miễn là người dùng cũng có thể tải xuống StaticProgram.obj và LGPL-library-source.tar.gz. Bạn cũng có thể phân phối StaticProgram.exe với phiếu mua hàng bằng văn bản để cung cấp các tệp khác.
Cụ thể, tĩnh liên kết tạo ra một thực thi duy nhất mà là một dẫn xuất của mã LGPL, vì vậy bạn phải tuân theo phần 6 của LGPL:
6) Là một ngoại lệ đối với mục trên, bạn có thể cũng kết hợp hoặc liên kết một công cụ "sử dụng Thư viện" với Thư viện để tạo một tác phẩm chứa phần Thư viện và phân phối tác phẩm theo điều khoản lựa chọn của bạn, với điều kiện là các điều khoản . cho việc sử dụng riêng của khách hàng và đảo ngược kỹ thuật để gỡ lỗi như vậy sửa đổi.
Bạn phải cung cấp thông báo nổi bật với mỗi bản sao tác phẩm mà Thư viện được sử dụng trong đó và Thư viện và việc sử dụng nó được bao gồm trong Giấy phép này. Bạn phải cung cấp một bản sao của Giấy phép này . Nếu công việc trong khi thực hiện hiển thị thông báo bản quyền, bạn phải bao gồm thông báo bản quyền cho Thư viện trong số đó, cũng như tham chiếu hướng người dùng đến bản sao của Giấy phép này.Ngoài ra, bạn phải làm một trong những điều sau:
a) Kèm theo công việc với mã nguồn máy có thể đọc hoàn chỉnh tương ứng cho Thư viện bao gồm bất cứ điều gì thay đổi đã được sử dụng trong công việc (mà phải phân phối theo Phần 1 và 2 ở trên); và nếu tác phẩm là một tệp thực thi được liên kết với Thư viện, với công cụ hoàn chỉnh có thể đọc được "hoạt động sử dụng Thư viện", như mã đối tượng và/hoặc mã nguồn, do đó mà người dùng có thể sửa đổi Thư viện và sau đó liên kết lại để tạo ra tệp thực thi đã sửa đổi có chứa Thư viện đã sửa đổi. (Điều này được hiểu rằng người dùng người thay đổi nội dung của file định nghĩa trong thư viện sẽ không nhất thiết phải có khả năng biên dịch lại các ứng dụng để sử dụng sửa đổi định nghĩa.)
b) Sử dụng một cơ chế thư viện chia sẻ phù hợp để liên kết với Thư viện . Một cơ chế phù hợp là rằng (1) sử dụng tại thời điểm chạy một bản sao của thư viện đã có trên hệ thống máy tính của người dùng, thay vì sao chép vào thực thi và (2) sẽ hoạt động đúng cách phiên bản sửa đổi của thư viện, nếu người dùng cài đặt một, miễn là phiên bản sửa đổi là tương thích với giao diện với phiên bản mà công việc đã được thực hiện cùng.
c) Kèm theo công việc với một lời đề nghị bằng văn bản, giá trị ít nhất ba năm, để cung cấp cho người sử dụng cùng một vật liệu quy định tại tiểu mục 6a, trên, đối với một giá không lớn hơn chi phí thực hiện này phân phối.
d) Nếu phân phối của công việc được thực hiện bằng cách cung cấp truy cập để sao chép từ một nơi đã xác định, cung cấp truy cập tương đương để sao chép các vật liệu nêu trên so với cùng nơi . e) Xác minh rằng người dùng đã nhận được bản sao của các tài liệu này hoặc bạn đã gửi cho người dùng này một bản sao.
Đối với một thực thi, hình thức cần của "công việc mà sử dụng thư viện" phải bao gồm bất kỳ dữ liệu và chương trình tiện ích cần thiết cho tái tạo thực thi từ nó. Tuy nhiên, như một ngoại lệ đặc biệt , các tài liệu là cần phân phối không bao gồm bất kỳ điều gì thường được phân phối (trong hoặc nguồn hoặc dạng nhị phân) với thành phần chính (trình biên dịch, hạt nhân, và vv) của hoạt động hệ thống trên mà tệp thực thi chạy, trừ khi chính thành phần đó đi kèm với thực thi.
Nó có thể xảy ra rằng yêu cầu này mâu thuẫn với những hạn chế giấy phép của thư viện sở hữu khác mà làm thường không đi cùng với hoạt động hệ thống.Một mâu thuẫn như vậy có nghĩa là bạn không thể sử dụng cả hai thư viện này và Thư viện cùng nhau trong một tệp thực thi mà bạn phân phối .
Ồ tốt. Cảm ơn câu trả lời. – PythonGem
Bạn có thể sử dụng liên kết tĩnh nếu bạn cũng phân phối mã đối tượng. –
Đọc phần LGPL phiên bản 2.1 6. Câu trả lời này không chính xác. – Kevin