标题:关于Qt LGPL 开发静态链接的应用程序时,发布需要提供什么或注意什么呢?
作者:lwei24
日期:2023-09-07 09:23
内容:
如题,关于Qt LGPL 开发静态链接的应用程序时,发布需要提供什么或注意什么呢?各位大佬,请问在公司里用Qt5开发静态链接的应用程序,该程序是免费提供给客户使用,在发布版本的时候需要注意什么?需要根据LGPL协议提供以下信息吗?
使用 LGPL 协议开发闭源程序,如果你使用动态链接的形式,那么,你可以以任何形式发布你的应用程序,商业的、非商业的、开源的、非开源的,随你。
如果你因某种原因必须静态链接一个基于 LGPL 协议发布的库(一下我们简称为 LGPL 库),那么,你有义务进行下面的工作:
你必须在你的文档中说明,你的程序中使用了 LGPL 库,并且说明这个库是基于 LGPL 发布的;
你必须在你的应用程序发布中包含一份 LGPL协议,通常就是那个文本文件;
你必须开放使用了 LGPL 库代码的所有代码,例如某些封装器。但是,其他使用这些封装器的代码就不需要开放了;
你必须包含你的应用程序的余下部分的目标文件(通常就是我们所说的 .o 等等),或者是其他等价的文件。源代码并不是必须的。
不知道各位大佬,有谁比较清楚这方面的东西?欢迎各位大佬们指点迷津,小弟感激不尽,在线等!!!
#1 [dbzhang800 09-07 09:41]
静态链接不了解。
其实,即使使用动态链接,也有不少注意事项。个人认为核心点是:你需要提供LGPL Qt库的源代码或提供让用户能够获取该源代码的方式。在商业程序中使用LGPL库时,不能限制用户对该库的修改和重新发布。
换句话说,
你需要声明你使用了LGPL版本的Qt,且提供对应的源代码,如果用户愿意修改源代码,你必须提供一种方式,来保证在你的程序中:用户可以使用他修改后的Qt,来取代你提供的Qt。
#2 回 dbzhang800 的帖子 [lwei24 09-07 10:22]
dbzhang800:静态链接不了解。
其实,即使使用动态链接,也有不少注意事项。个人认为核心点是:你需要提供LGPL Qt库的源代码或提供让用户能够获取该源代码的方式。在商业程序中使用LGPL库时,不能限制用户对该库的修改和重新发布。
换句话说,
你需要声明你使用了LGPL版本的Qt,且提供对应的 .. (2023-09-07 09:41)
哦哦,那请问如何判断自己开发的Qt 应用程序是GPL还是LGPL呢?因为我在安装Qt5.14的QCreator的时候,它并没有让选择协议,只是简单说了,当前是遵循GPL或LGPL。我查看了很多关于这方面的信息,很多人都说动态链接,不需要提供什么,随便任意免费试用。但是就是静态链接的Qt exe程序好像有限制,只是看到那些限制,我有点懵了,前两点提供说明LGPL协议,还好说明理解,但后面两点,总不能每次发版本,都把源代码h和目标文件等一起发给客户吧,人家客户又不需要这些,只需要exe程序。。。
#3 [dbzhang800 09-07 12:22]
Qt中有的模块只有GPL没有LGPL,比uQtCharts,只要你用了,肯定是GPL了。
如果你的所有模块都同时有GPL和LGPL,那就看你自己声明了。
LGPL对动态链接和静态链接要求是一样的,只不过动态链接容易满足其要求罢了。
比如说:
1. 你需要提供对应的Qt源码。是指:即使Qt公司破产了,KDE基金会关门了,或者他们自己源码搞丢了。你仍然有给客户提供Qt对应源码的义务。
2. 保证用户有修改Qt源码的自由,修改后,可以用到你的程序中。(这点,动态库比较容易实现,静态库就很麻烦)
#4 回 dbzhang800 的帖子 [lwei24 09-07 13:42]
dbzhang800:Qt中有的模块只有GPL没有LGPL,比uQtCharts,只要你用了,肯定是GPL了。
如果你的所有模块都同时有GPL和LGPL,那就看你自己声明了。
LGPL对动态链接和静态链接要求是一样的,只不过动态链接容易满足其要求罢了。
....... (2023-09-07 12:22)
哦哦,多谢,有点复杂了。请问那工程目前只用到widgets模块呢?算GPL还是LGPL呢?动态链接形成的exe的确比较好发布,这个暂且不说,那静态链接会很麻烦,这个麻烦,到底应该怎么做呢?因为假设您是Qt开发设计者,开发出来的exe程序是通过静态链接的,那在您即将给客户发布您免费的软件时,也要提供这个软件的工程所有代码或目标文件吗?这样感觉有点麻烦,倒也不是不能提供,只是对于不懂代码的人来说,人家不需要这些,只需要工具……所以,想看看各位大佬们你们是怎么处理这种问题的?
#5 [20091001753 09-07 13:46]
但问题是,正常来说,都是以动态链接的形式发布程序,即使是给客户(他人)用,也这样。
你为啥钟情于静态编译?