Qt版权
LGPL
LGPL = Lesser General Public Library(宽通用公共许可证)
核心:库可以闭源使用,但修改库本身必须开源
不同协议许可证的对比
| 许可证 | 链接使用 | 链接使用 | 商业产品 |
|---|---|---|---|
| GPL | 必须开源整个项目 | 必须开源 | ❌ 强制开源 |
| LGPL v2 | 可以闭源 | 修改部分必须开源 | ✅ 可商用 |
| LGPL v3 | 可以闭源 | 修改部分必须开源 | ✅ 可商用,但有额外限制 |
| MIT/BSD | 完全自由 | 完全自由 | ✅ 无限制 |
LGPLv2和LGPLv3的最大区别是Tivoization的处理
Tivo是美国机顶盒公司,硬件上运行LGPL库,由于硬件有签名认证,所以用户无法替换这个库。结果是,虽然开源的代码库,但用户无法运行修改版代码。
LGPL v3要求,如果产品使用了LGPL v3的库
必须允许用户替换该库,可安装修改版
不能用硬件签名或加密手段阻止用户替换
必须提供安装说明
LGPL v2则没有这个要求。
Qt版权
Qt 2 后源码授权许可证开始使用GPL,Qt 4.0 发布时它拥抱了 GPLv2,2009年收购 Trolltech 诺基亚为 Qt 加入了 LGPLv2.1,LGPLv2.1 存在漏洞,没有澄清使用修改库的问题,这个漏洞被企业广泛利用开发锁定的设备,开发者认为,使用 LGPLv2.1 授权的修改版 Qt 去创建锁定设备伤害了 Qt 的生态系统。
因为设备不对第三方公开,对生态系统没有任何贡献。LGPLv2.1 没有保护用户的自由,自由软件基金会的 LGPLv3 解决了这个问题。LGPLv3 开源许可证将能在用户使用开源版的 Qt 时确保用户自由,LGPLv3 明确禁止封闭嵌入式设备分发 LGPLv3 授权的软件。
从 5.4 开始 Qt 将采用 LGPL v2.1、LGPL v3 和商业许可证授权,而新的附加模组将只在 LGPL v3 和商业许可证发布。在 Qt 4.0 到 Qt 5.3 的版本使用 LGPLv2.1,并且随着版本的更新越来越多的模块不再使用 LGPLv2.1。
最新的LGPLv3, 意思是嵌入式设备,包括手机开发,使用LGPLV3 Qt5.4以后的版本,无论动态库,静态库都是不允许的。
Qt大多数组件库在LGPL 下可以用 包括2.1和3.0
LGPL不修改源码+动态链接库下是非开源商用友好的。
LGPLV3已经不适用封闭嵌入式设备。
Qt 5 许可证演变
| 版本 | 发布时间 | 许可证 |
|---|---|---|
| Qt 5.0 ~ 5.3 | 2012~2014 | LGPLv2.1 |
| Qt 5.4 | 2014.12 | LGPLv2.1 + LGPLv3 双选 |
| Qt 5.5 | 2015.07 | LGPLv2.1 + LGPLv3 |
| Qt 5.6 | 2016.03 | LGPLv3 为主,部分模块仅 LGPLv3 |
| Qt 5.7 | 2016.06 | 部分模块 仅 GPLv3/商业 |
| Qt 5.8 ~ 5.15 | 2017~2020 | 核心 LGPLv3,部分模块 GPLv3/商业 |
推荐使用Qt5.5版本。
最后编辑:SteveChen 更新时间:2026-06-12 17:52