【发布时间】:2012-07-23 06:51:51
【问题描述】:
我正在开发一个封闭源代码的应用程序,并且要按照 LGPL 这样做,我必须将 Qt 的库动态链接到我的应用程序。 Qt 默认情况下会这样做还是我必须采取措施这样做?如果是这样的话,我该怎么做呢?
【问题讨论】:
标签: qt qt-creator
我正在开发一个封闭源代码的应用程序,并且要按照 LGPL 这样做,我必须将 Qt 的库动态链接到我的应用程序。 Qt 默认情况下会这样做还是我必须采取措施这样做?如果是这样的话,我该怎么做呢?
【问题讨论】:
标签: qt qt-creator
Qt 默认使用动态链接。
在部署到非开发人员机器时,您会立即注意到这一点,因为没有 Qt 库,您的代码将无法运行。
如果您关心的是 LGPL,那么在编译 Qt 本身时要小心。大多数与 Qt 的 LGPL 违规不是因为静态链接(因为动态是默认链接),而是因为使用非默认参数编译 Qt。
LGPL 不仅是必须在您的二进制文件中提供该库,而且您还可以指定您的用户如何构建自己的 LGPL 部分。如果您自己编译 Qt 并且不使用网站上的预编译二进制文件,则必须在您的版本中记录您的构建配置的那部分!
一旦你在你的程序上运行了一些东西,就开始为没有安装 Qt 的非开发人员环境准备一个发布版本。一旦您删除必须沿程序复制的 DLL(或您的操作系统使用的任何格式),您的程序就会失败。
【讨论】:
默认情况下会这样做,从网站上关于它的许多问题来看,静态链接似乎相当复杂。
【讨论】: