由C/C++的开源项目和开源协议说开去
——和CSDN博客专家王绍全的讨论记录
以下,是 2009/11/30 在 CSDN博客专家群,我(liigo)与CSDN博客专家王绍全(Eric)的讨论记录,发表之前已征得他的同意。内容上,主要表达了我私下里对于C/C++开源项目的抱怨,和由于版权的关系不能有效地将其应用于工作中的烦恼。
王绍全[wwwsq] 14:55:22
http://www.theregister.co.uk/2009/01/21/open_source_projects_08/print.html
在18万个开源项目中,有47%是用C,28%用Java,11%用PHP
庄晓立[liigo] 17:32:34
不要单纯比数量,从实用上来比。如PDF生成器、FLASH生成器、报表生成器,成熟的C/C++开源项目基本找不着,GOOGLE出来的有名的开源项目多是JAVA的。
庄晓立[liigo] 17:33:10
这个我深有体会。
庄晓立[liigo] 17:34:06
(二进制)数据文件生成,按说是C/C++的强项,是JAVA的弱项。
庄晓立[liigo] 17:34:20
表现出来却相反。
庄晓立[liigo] 17:36:03
而且,C/C++的开源项目多是GPL/LGPL协议,对商业使用不友好;而JAVA的开源项目多是Apache2.0,对商业使用是友好的。
王绍全[wwwsq] 17:36:13
除了eclipse,有哪些著名开源项目是java的?
王绍全[wwwsq] 17:37:37
OpenOffice官网主页说,它是C/C++的
庄晓立[liigo] 17:37:47
看上下文,是说的PDF生成器、FLASH生成器、报表生成器,又是与C/C++对比
王绍全[wwwsq] 17:38:35
linux/firefox/emule/putty/gcc/apache这些都是c/c++的
庄晓立[liigo] 17:39:28
而且,C/C++的开源项目多是GPL/LGPL协议,对商业使用不友好;而JAVA的开源项目多是Apache2.0,对商业使用是友好的。
例如GNU BFD(Binary File Descriptor),开源的,看上去发展的很成熟了,可是它是GPL的,我开发商业链接器(linker)的话,就不能用它。
王绍全[wwwsq] 17:40:48
可以绕的,有些公司专门写个程序来link GPL的lib
王绍全[wwwsq] 17:40:57
别的模块和这个小程序通讯
王绍全[wwwsq] 17:41:13
这个link GPL lib的小程序可以开源
庄晓立[liigo] 17:41:25
哦。
王绍全[wwwsq] 17:42:52
具体问题,可以咨询知识产权法律专家。小公司不用担心,大公司自然有专门的法律顾问的。
庄晓立[liigo] 17:43:02
有时候对GPL和LGPL很无奈,干看着,偏偏用不上。呵呵。LGPL的库(lib),还不允许静态链接。
庄晓立[liigo] 17:43:22
我们虽然是小公司,但对版权还是很小心的。
王绍全[wwwsq] 17:43:58
对版权小心,是要付出成本的。如果你们觉得值得,那么就需要考察一下别的公司是怎么对付这个问题的。
王绍全[wwwsq] 17:44:08
我刚才说的绕的方式,只是其中一种方式。
庄晓立[liigo] 17:44:22
嗯,多谢。
王绍全[wwwsq] 17:44:24
不客气:)
庄晓立[liigo] 17:46:47
国内外有名的视频播放器,如kmplayer,QQ影音,暴风影音,都是非法使用ffmpeg库,都进入人家的耻辱名单了。
庄晓立[liigo] 17:47:13
可见“绕”也不见得绕过去,嘿嘿
王绍全[wwwsq] 17:47:47
那些播放器是绕都懒得绕吧?
王绍全[wwwsq] 17:48:09
多媒体的库直接和硬件打交道,可能也比较难绕
庄晓立[liigo] 17:52:06
据说GPL/LGPL也是法律专家们研究的结晶
王绍全[wwwsq] 17:52:21
这个倒是
王绍全[wwwsq] 17:52:40
GPL/LGPL也是有一大帮律师参与帮助制定的
庄晓立[liigo] 17:53:24
是啊。
王绍全[wwwsq] 17:54:03
跟着大公司做了,绕的方法是被很多大公司采用的。要有法律麻烦,也是他们先遇到。天塌下来有高个子顶着呢。
王绍全[wwwsq] 17:54:46
我没有具体证实过。你要是打算采用这个方式,请自己证实一下。
庄晓立[liigo] 17:55:00
嗯
庄晓立[liigo] 17:57:26
还接前面说,wxWidgets是类LGPL协议的,我们如果静态链接WX库,编译出一个动态库给易语言用,用起来就很方便。偏偏LGPL不允许静态链接。那么就麻烦许多,将来发布程序还得带着WX的动态库,还得考虑它的路径问题。
庄晓立[liigo] 18:00:02
有谁知道,VC6的链接器(link.exe),未经许可可以直接使用吗?多谢。
庄晓立[liigo] 18:00:41
我的意思是随程序发布出去
庄晓立[liigo] 18:00:58
我的意思是随程序发布出去,内部调用。
王绍全[wwwsq] 18:01:05
多半是不行的
庄晓立[liigo] 18:02:08
我估计也是不行的
王绍全[wwwsq] 18:02:18
link.exe是微软的版权软件,它的使用许可99%不会让你再发布的
王绍全[wwwsq] 18:02:39
gcc打包再发布应该是可以的,只要声明一下,并且提供代码
庄晓立[liigo] 18:03:06
VC6是十年前的软件了,有没有过期一说?
王绍全[wwwsq] 18:03:25
专利会过期,软件所有权没听说有过期的
庄晓立[liigo] 18:03:41
对,是的。
分享到:
相关推荐
程序员宝库,开源社区GitHub到底该怎么玩__如何玩转Github__Java_Python_C语言_C++开源项目聚集地
c/c++完整视频教程(三)——–Linux服务器编程
1. 熟悉 C/C++ 的人员 2. 正在做关于 Qt 可视化却无从下手的人员 3. 希望做一个小项目,但没有合适的框架的人员 我主要能学到什么: 1. 该项目包含 鼠标点击响应与绘图相关的算法 2. 该项目包含 创建、删除、编辑 ...
C/C++ Base64编解码开源库,第三方开源库,亲测可用;
C_C++开源项目推荐,帮助大家从学习走向实践!研究开源项目是获得项目经验的绝好途径!
C/C++实现mysql数据库的缓存管理 Linux下用C/C++写一个提高mysql数据库效率的数据缓存模块 缓存管理 window下用C/C++写一个提高mysql数据库效率的数据缓存模块 C/C++ mysql缓存 缓存 PS:记得要先把数据库给搭建起来
——代码完成于2021-11-12 整体思路: 用两个数组分别模拟 A->B 和B->A间通讯的信道。A、B两主机各自拥有独立线程。线程move用来模拟信道中信号的移动。线程show用于打印信道。其中线程move和show detach()后作为...
虚拟机的设计与实现——C/C++.pdf
c/c++中文帮助文档(API),包含c和c++所有的库函数
poco/c++开源库学习资料打包下载,通过网络收集整理,比较多 POCO_C++库学习和分析_--__跨平台库的生成.docx POCO_C++库学习和分析_--__随机数和数字摘要.docx POCO_C++库学习和分析_--_Cache.docx POCO_C++库学习和...
虚拟机的设计与实现——C/C++
简要实现了C/C++中调用Lua脚本的技术。 通过用Lua脚本输出一个便签,来研究C/C++与Lua的交互技术。
视频演示如何玩转一个开源项目__如何运行+如何读代码__顺便讲讲IDEA和Spring_Boot__Java_Python_C语
c/c++完整视频教程(四)——–数据库(MySQL,Oracle)
“Turbo C++ 3.0”软件是Borland公司在1992年推出的强大的——C语言程序设计与C++面向对象程序设计 的集成开发工具。它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下设计和编译以标准 C 和 C++ 语法设计...
为了考虑到程序兼容性,通常我们编译C/C++程序会编译32位和64位两个版本,像VisualStudio,devcpp这类集成开发环境确实不用自己设置就能做到,但是他们都有不方便的地方,如VisualStudio的占用空间太大,如果初学C/...
虚拟机的设计和实现(C/C++) 虚拟机的设计和实现(C/C++) 虚拟机的设计和实现(C/C++) 虚拟机的设计和实现(C/C++)
C/C++程序员实用大全-C/C++最佳编程指南
c/c++算法实现多路pcm混音源码
密码学:C/C++语言实现(原书第2版)主要阐述如何使用C和C++语言实现密码学算法,包括编写专家级的密码所需要掌握的知识和技术,以及如何安全并高效地实现密码学算法。第2版包括了许多全新内容,同时对原有内容进行了...