我正在考虑构建一个动态链接到Qt库的闭源应用程序。目标平台将是Linux和Windows。为了履行LGPL的义务:
"您的应用程序的用户必须能够将您的应用程序与Qt库的不同或修改版本重新链接。 (Qt faq)。
我很难理解为实现这一目标所必需的技术。特别是没有发布源代码。
用户可以在哪些条件下使用自己的修改版本替换应用程序附带的.so / .dll文件?
这有可能吗?因为同样的问题是libstdc++ faq状态:
LGPL要求用户能够用修改后的版本替换LGPL代码;如果有问题的库是C共享库,这是微不足道的。但是没有办法让C ++工作,其中大部分库由内联函数和模板组成,这些函数和模板在使用库的代码中扩展。因此,为了允许人们替换库代码,使用该库的人必须分发他们自己的源,使LGPL等同于GPL。
谢谢!
修改第二个问题由LGPL version 3第3部分阐明。有用的参考:old version常见问题Eigen讨论此问题及其{ {3}}关于它。
答案 0 :(得分:1)
在实践中,人们通常会链接到共享库Qt;所以稍微升级Qt - 只要一些常见的API仍然存在,是可能的。高级用户原则上可以调整Qt库(从您正在使用的版本的源代码开始)以满足他的需要(例如,纠正顽皮的bug,特别是不触及任何Qt头文件)。当然要提供所有细节来帮助他(至少提一下你要链接的Qt的版本)。
原则上,正如您所注意到的,这可能还不够。只有审判和法官才能真正决定,所以问你的律师。
当然,我不是律师。
顺便说一下,您是否考虑过要求您的经理或客户(或法律责任人)以free software的身份发布您的代码并将其发布(例如GPLv3+下的github下)?在我的偏见中,这将是最好的解决方案!