【发布时间】:2022-11-29 17:31:38
【问题描述】:
Qt 菜鸟在这里。
我编写了一个小的 GUI 应用程序来完成 Qt Creator for Linux (Ubuntu 22.04) 上的一项琐碎任务。它由很少的类和一个基本的用户界面组成。
我想分发一个独立的可执行文件供同事在他的 Windows 机器上使用,但我找不到任何关于如何操作的简单说明。
我该如何离开这里?我需要什么工具?
【问题讨论】:
Qt 菜鸟在这里。
我编写了一个小的 GUI 应用程序来完成 Qt Creator for Linux (Ubuntu 22.04) 上的一项琐碎任务。它由很少的类和一个基本的用户界面组成。
我想分发一个独立的可执行文件供同事在他的 Windows 机器上使用,但我找不到任何关于如何操作的简单说明。
我该如何离开这里?我需要什么工具?
【问题讨论】:
如果你想要一个单一的文件,你需要将 Qt 库静态链接到你的可执行文件,而且如果你想让你的同事在 windows 上使用它,你要么需要交叉编译它,要么在 windows 机器上本地编译它。
【讨论】:
这个问题的答案是“商业 Qt 许可证”。
您的目标是拥有一个独立的可执行文件,这意味着该可执行文件包含您的代码和 Qt 的代码。 但是Qt库是双重许可的,使用的开源许可是LGPLv3。
可以在 Qt FAQ 中阅读此许可证的义务:
- 您需要向您的用户/客户提供您使用的 Qt 库的完整源代码,包括您所做或应用的所有修改。或者,您需要提供一份书面报价,其中包含有关如何获取源代码的说明。另请注意,这必须在您的控制之下,因此 Qt 项目或 Qt 公司提供的源代码链接是不够的。
- 您的应用程序的用户必须能够将您的应用程序重新链接到 Qt 库的不同或修改版本。对于 LGPLv3,还明确指出用户需要能够在其预期的目标设备上运行重新链接的二进制文件。您有义务为用户提供所有必要的工具来启用此过程。对于嵌入式设备,这包括使用于编译库的完整工具链可供用户使用。对于根据 LGPLv3 许可的部件,您有义务提供有关如何在目标设备上安装修改后的库的完整说明(LGPLv2.1 没有明确说明,尽管针对修改后的库版本运行应用程序显然是声明的意图许可证)。
- 使用 LGPL 许可软件的应用程序或设备的用户必须通过向最终用户提供 LGPL 许可副本并显示有关您使用 LGPL 许可软件的显着通知来告知他们的权利。
传送单个可执行文件违反了义务 1 和 3,但这通过添加所需文件相对容易解决。但是,义务 2 不是。用于创建单个独立可执行文件的过程不容易逆转。也可以通过发送源代码来履行此义务,但请咨询软件律师以正确解释许可文本。
【讨论】: