最近使用MFC开发,由于MFC开发需要考虑的东西较多,而且未知的宏和函数也比较多,我在考虑是不是在转QT开发项目。
    我通过网络收集了一下QT的资料,但是发现QT是有开源协议的,协议是LGPL。

    LGPL协议:
    1.不可以闭源。
    2.新增加代码不可以采用许可证。
    3.不需要对修改之处提供说明文档。

    那也就是,我使用QT生成项目,项目调用了QT的源码,也就是我的整个项目必须要开源?

    难道想要闭源,必须要使用商业版?

C++技术网会员解答:

    您好,感谢你对C++技术网的支持与信任。

    我不知道你想用QT来做什么,是出于自己做一些软件,还是给公司做软件。之前有一个解答是按照协议的说明来解答的。但是这次我不想这么回答了。

    为什么?在中国这个国度里,你觉得这些协议很起作用吗?哈哈哈。我们不是说不想尊重开源的协议,而是不要因此让自己担负太大的压力。按照平常心来讲,我们一般不要太顾及协议这个东西。开源是为了让代码得到更好的继承,造福人类。当然不排除一些公司利用开源来推广自己。反正开源了对我们都有好处。

    如果说,你觉得使用开源协议很受益,在可能的情况下,可以将个人的不错的代码开源,或者捐款。再不行,也可以大力帮忙推广,都是对开源的支持。而如果是个人写个小软件或者给公司写软件,其实都没什么问题的。

    如果你真的对协议很重视,你可以按照协议的去做,但是按照模块将需要开源的部分分离开,这样可以避免核心的代码被公开,毕竟这些是我们的商业机密。开源组织自然也不会那么太过苛求的。

    反正我们公司,用QT的人大有人在,其他公司,到处都有人在,他们也没有考虑这个问题。最近我们公司上市了,也没有见开源组织说查代码之类的。连正版化都没有查什么,VS工具我还是盗版的呢,微软也不来找我。

    闲话说完,就是告诉你,不要有太多的心理负担。QT这么多人用,大家都用的好好的,你也随大伙一块用就行了。QT现在使用的很多,放心用就行了。

    请你相信我,学QT不会有错,好好学,先不要被那些条条框框限制了,否则QT怎么火的起来。早些年,微软不是纵容盗版么,不就是想让微软的产品普及嘛。现在还是盗版横行,也没有见几个公司被微软高了。当然也就告一下巨头公司而已,小公司还懒得玩呢。

    作为一个新手,有疑虑是很正常的,希望你看完这段解答,能够释然,然后想学就好好学吧。