【问题标题】:Qt, LGPL, Commercial closed-source application [closed]Qt,LGPL,商业闭源应用程序[关闭]
【发布时间】:2011-03-02 18:13:18
【问题描述】:

我们有一个使用 Qt 的商业 Windows 应用程序。

我的描述会非常简单,因为我必须有一个明确的答案。

在编译时我们使用 Qt *.lib 文件

我们的编译结果是一个 *.exe 文件,我们打包到安装程序中并发送给客户。这个 *.exe 文件依赖于 Qt 中的 *.DLL 文件。

在运行时使用 Qt 的 *.dll 文件

我的问题是:

  1. 我可以在我的安装程序中合法地捆绑 Qt *.dll 文件吗?
  2. 我能否合法地捆绑我的最终 *.exe 文件,即使它的编译/链接依赖于 Qt *.lib 文件?

【问题讨论】:

  • 如果您正在做商业申请,并且您必须在法律问题上得到答案,您实际上应该咨询律师,这对您来说会更安全。
  • 我投票决定将此问题作为离题结束,因为它是关于许可或法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。

标签: qt licensing lgpl


【解决方案1】:

1) 我可以合法地捆绑 QT *.dll 文件在我的安装程序中吗?

这是推荐的解决方案 - 它允许用户轻松升级到更高版本的 Qt。

2) 我可以合法地捆绑我的最终 *.EXE 文件,即使它是编译/链接 取决于 QT *.LIB 文件

您的意思是您使用 Qt 存根 .libs 来构建 dll 版本还是静态链接 exe(不需要 Qt DLL)? 必须可以重新链接 Qt。如果您静态链接 Qt,这可能意味着您必须使您的应用程序的对象或原始库版本可用(取决于您的操作系统)

【讨论】:

  • 我的意思当然是存根,最终的 EXE 将取决于在运行时找到 QT dll。
  • 那么就是这样。 “黑客”可以侵入 QtGui.dll,随意编辑,将其替换到您的应用程序文件夹中,然后将您的应用程序与 HIS dll 一起使用! LGPL 允许这样做。只要您使用存根 .LIB,就不会静态链接 Qt。
【解决方案2】:

两者都是允许的。您应该特别注意 LGPL 2.1 的第 6 节。您必须允许对您的封闭源应用程序进行私人修改和逆向工程。您可能需要选项 6b,在您的情况下,这意味着用户可以安装修改后的 QT DLL。伊纳尔。

【讨论】:

  • 这是我不明白的——我怎样才能允许切换 QT DLL?如果这是一个错误修复,那很好,但是如果他们改变了“融合”到我编译的应用程序中的 *.lib 文件的结构和内容需要改变怎么办?这在技术上听起来是不可能的。
  • 你的程序只需要使用修改后的 QT DLL,前提是它“与进行工作的版本接口兼容。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多