Tôi đang xem xét việc xây dựng một ứng dụng nguồn đóng liên kết động với các thư viện Qt. Các nền tảng đích sẽ là Linux và Windows. Để thực hiện các nghĩa vụ của LGPL:Cách cho phép sửa đổi riêng tư khi sử dụng Qt trong một sản phẩm thương mại theo LGPL
"Người dùng ứng dụng của bạn phải có khả năng liên kết lại ứng dụng của bạn với một phiên bản khác hoặc sửa đổi của thư viện Qt" (Qt faq).
Tôi đang cố gắng hiểu được kỹ thuật là gì cần thiết để làm điều này có thể. Đặc biệt là không giải phóng mã nguồn.
Trong điều kiện nào người dùng có thể thay thế tệp .so/.dll đi kèm với ứng dụng với các phiên bản đã sửa đổi của riêng mình?
Điều này có thể thực hiện được không? Vì cùng một vấn đề, các trạng thái libstdc++ faq:
LGPL yêu cầu người dùng có thể thay thế mã LGPL bằng phiên bản đã sửa đổi; điều này là tầm thường nếu thư viện được đề cập là thư viện được chia sẻ C. Nhưng không có cách nào để thực hiện công việc đó với C++, nơi mà nhiều thư viện bao gồm các hàm và mẫu nội tuyến, được mở rộng bên trong mã sử dụng thư viện. Vì vậy, để cho phép mọi người thay thế mã thư viện, một người sử dụng thư viện sẽ phải phân phối nguồn của riêng họ, hiển thị LGPL tương đương với GPL.
Cảm ơn bạn!
Edit: Vấn đề thứ hai được làm rõ bởi LGPL version 3, phần 3. tham khảo hữu ích: một old version của Eigen FAQ thảo luận về vấn đề này và correspondence with the FSF của họ về điều đó.