我正在使用Qt开源版开发一个应用程序.由于我不想提供Microsoft Visual Visual C(++)可再发行组件,我想使用Qt的静态链接版本.Qt的许可信息说我"应该"与商业的Qt许可开发,如果我想在我的应用程序中使用静态链接,虽然当我使用configure -static命令建立一个静态Qt库的命令提示符问我,如果我用的是商业或Qt的开源版本.
那么有可能用开源版本构建Qt吗?我是否需要商业版才能使用静态链接?我不会出售该申请.
dte*_*ech 27
编辑2016年4月
实际上,我最近一直在深入了解LGPL,并询问一些专家.事实证明,在封闭源应用程序中无法使用Qt的静态链接更像是一个培养的传奇,与现实无关.
LGPL要求的是最终用户可以将应用程序重新链接到不同版本的库.使用动态链接是实现这一目标的一种方法,但您可以轻松地提供目标文件,这样您就不必打开源代码并且仍然满足LGPL要求.
在Qt网站上有2个法律常见问题解答,但它们都没有直接声明你不能这样做.正如没有说明你可以.但是,至少有几个例子表明存在模糊的法律威胁,如果你这样做的话.我认为对所有这些人都有一个很好的解释 - 他们不能说如果不发表实际的谎言就不能做到这一点,这可能会对他们产生负面的法律影响,并且他们愿意不鼓励这样做而不是鼓励它,因为它有可能迫使更多人购买商业许可证.
所以简而言之,是的,你可以,你绝对应该最近Qt已成为一个活生生的部署地狱,再加上Qt 5.7在静态构建中,QML文件整齐地隐藏在可执行文件中,而不是在文件系统上,任何人都可以篡改.请确保:
最后,您的应用程序实际上必须是"可重新链接的",也就是说,它必须能够使用提供必要功能的兼容库版本.这意味着,如果您在构建之前对Qt进行了修改,则必须以源代码的形式提供,但只能修改Qt,而不是应用程序的源代码.
更新:
以下是GNU FAQ的摘录:
为了遵守LGPL(任何现有版本:v2,v2.1或v3):
(1)如果您静态链接到LGPL库,则还必须以对象(不一定是源)格式提供应用程序,以便用户有机会修改库并重新链接应用程序.
这说得很清楚.
旧的原始答案:
只要您的应用程序是开源的并且您提供源代码,就可以静态构建Qt.如果要保持源关闭,则需要昂贵的商业许可证,或者需要使用动态链接.
使用Qt的静态构建的BTW非常好,对于Qt5,我得到大约7-8 MB的可执行文件,没有外部依赖性,这比你必须附带动态链接的应用程序的20多MB额外的dll要好得多.
有关详细信息,您可以查看此视频:使用Qt进行开发时选择正确的许可证
总而言之,可以做到吗?100%是的.它应该完成吗?这取决于个人/测试/学习目的,它是100%好的,但是如果你计划分发生产级软件,无论是否商业,开源或不开源,你最好先咨询律师.整个主题是不必要的复杂,需要解释,以便与律师协商变得比昂贵的商业许可证更昂贵.
| 归档时间: |
|
| 查看次数: |
10126 次 |
| 最近记录: |