1.9 问题与解答

问:LGPL 是什么,和 GPL 有什么区别

答:GNU 宽通用公共授权(GNU Lesser General Public License,或 LGPL)是由自由软件 基金会(Free Software Foundation)发布的一个免费软件授权。它被设计作为在 strong-

copyleft GNU 通用公共授权,或 GPL,和简单授权的授权(例如 BSD 授权和 MIT 授权)之

间的一个妥协,LGPL 对程序本身设置了 copyleft 限制,但这些限制不适用于仅与该程式连 接的其他软件。

这两个授权都是比较复杂的,需要仔細阅读才可以领会他们重要的区别。总的来说, GPL 要求任何衍生工作成果,比如使用 Qt 开发的应用程式都必须根据 GPL 条款重新進行授 权;而 LGPL 限制性更低,允许开发闭源应用程序。目前最新的 Qt4.5 在 LGPL 2.1 版本下 发布 Qt,并继续在 GPL 3.0 版本下提供 Qt。

问:请问版主,商业版 Qt 提供有服务,而我们开源版遇到自己不能解决的问题怎么办?

答:如果你觉得发现的问题确实是 来自于 Qt 本身,那么你也可以把它提交给 Qt 的。下面是网址:

http://www.qtsoftware.com/forms/feedbackform.html?cid=15 再者,就是你可以把你的问题发到 Qt 的论坛里面,请大家一起讨论解决。关于 Qt 的论坛,在本书的附录中有详细的介绍,可以参考。

问:从哪里可以购买到 Qt 商业版

本人想使用商业版 Qt,主要是与 msvc.net 集成的版本,不知道在哪里可以购买到,在 国外和国内的价格是否有不同呢?

答:个人买的话,在下面的网页上你可以查到价格: http://www.qtsoftware.com/products-cn/pricing-1 你也直接和北京办事处联系一下看如何购买,网址如下: http://www.qtsoftware.com/about-us-cn/contact

据了解,目前国际上 Qt 的价格是统一的,不存在不同地域价格有差异的问题。 在下面的网页上你可以了解到 Qt 的定价体系以及详细的支持信息,了解这些对你使用

商业版有很大的帮助:

http://www.qtsoftware.com/products-cn/pricing-1

问:Qt4.5 LGPL 版与商业版有何区别?

现在 Qt4.5 支持 LGPL 了,应该就是说不用开放源代码,也可以免费做商业用途了是吧? 但看它主页上还有个商业版本的,那个又是做什么用的?难道说用 LGPL 是不能用作商业的?

答:这两者是不一样的。要明确的是 LGPL 版的 Qt 也是开源版的一种,只是它遵循的协议 与 GPL 略有不同,简单来说,LGPL 允许你在不改变 Qt 源代码的条件下,开发商业应用程序 而不必开放自己的源代码,这实际上是为 Qt 的商业应用扫清了最后的障碍。

具体讲 LGPL 和商业版的主要区别如下:

首先是 LGPL 版的没有某些商业版拥有的功能(比如 ActiveQt),同时要求你不能改变Qt 的源代码的情况下才行;商业版的则可以改变 Qt 的源代码。此外,商业版有商业数据库驱动支持,比如 Oracle 等;运行于 Windows 的商业版有 ActiveX 支持。还有就是商业版有售后服务的支持,LGPL 版没有。

问:我想问一下,看到有些书上说只有 Qt4 的商业版才可以和 Visual Studio 结合使用,开源版只能用 MinGW,是这样吗?

答:首先你说的“结合使用”是要看程度的,Qt4 开源版可以使用 Visual Studio 作为 编译器,但不能集成 Qt 工具套件(有些特殊方法可以做到,但笔者不推荐) 。要集成使用 的话,需要使用 Qt 提供的 VS Intergration,但它只提供给商业版。

问:我使用开源版连接 sqlserver2005,用 QODBC 的,弹出提示说“Driver not loaded”,请问非商业版是不是不能连接 Sql Server?

答:是的,默认情况下,非商业版没有提供对 SQL Server 的驱动支持,但是非商业版 可以使用某些免费的第三方 ODBC 模块来连接 SQL Server。

问:请问我在商业版中编写的代码能在开源版下编译通过么,反过来呢?

答:从 Qt 的设计上看,应该是可以的,“一次生成,到处编译”是 Qt 的本质特色。 但有一个前提,就是首先要确认你的代码没有使用只有在商业版中才有的功能,然后确定你 的商业版和开源版的对应关系,最好是版本号取得一致 。最后,你在开源版中试一下,如果 可以编译并成功运行,就没有问题。反过来的话,应该是只需要对应好版本就可以了。

问:大家谁知道 Qt 授权中的“专属应用程序”是什么涵义?请指教

如题,在 Qt 官方网站上关于 Qt 授权的说明中写道:“如果您想使用 Qt 开发专属和/ 或商业软件,但又不想共享源代码,那么 Qt 商业授权是正确的授权方式”。

那么这里的“专属应用程序”或者是“专属软件”是什么意思,与商业的有什么区别呢?

答:专属是指的自有知识产权, 那个英文单词在这个语境下确实是不太好翻译,可以

简单的理解为不开源。原英文解释如下:

The Qt Commercial version is the appropriate version to use for the development of proprietary and/or commercial software.

专属软件就是上面那个 proprietary 的,其实应该是拥有产权的,私有的。 我更倾向 于理解为软件版权的归属是私有的,而不是软件的使用范围是私有的。

问:还有一个问题,也是 Qt 的授权中 提到的:“运行时收费”,又是什么含义呢? 比如商业版,已经通过购买 License 了,为何还要运行时收费呢?

答:运行时收费就是每卖出一份软件拷贝,收取一份费用。简单的说就是按装机量收费。