当前位置:  开发笔记 > 编程语言 > 正文

在其原始许可下涵盖的互操作定义的程度

如何解决《在其原始许可下涵盖的互操作定义的程度》经验,为你挑选了1个好方法。

我有一个为视频文件创建缩略图的项目,它基于directshow.net中的互操作定义.

目前媒体浏览器是GPL所以一切都是兼容的,我很高兴剪切和粘贴这些代码(因为它的所有归属都正确).

但是......我正在考虑将此代码包含在衍生的MIT许可项目中.这留下了一点点.

Directshow.net是根据LGPL许可的,这意味着我可以依赖该DLL.但是......我不能在限制较少的许可下包含代码.

有问题的文件是互操作定义,可以通过阅读MSDN并将内容翻译成C#来轻松/繁琐地定义,如果我手动执行此操作,我很可能会得到相同的代码(或非常类似的东西).

我站在哪里?如何将此功能纳入我的MIT许可项目?

相关:http://sourceforge.net/forum/forum.php?thread_id = 3040125&forum_id = 460697



1> Mason Wheele..:

获取所有代码并将其转换为DLL,您就可以了.根据LGPL的条款,您可以从任何项目链接到它作为共享库; 只有LGPL DLL本身才受许可要求的约束.它必须是LGPL,但你的项目的其余部分不会.

如果您想将库的代码静态链接到可执行文件中,事情会变得更加繁琐.LGPL的观点是最终用户必须能够自由地主动修改(尤其是升级)库的功能.如果它是一个独立的DLL,那只是将一个DLL换成另一个DLL的问题.如果您使用代码并静态链接它,那就不那么简单了.那你有两个选择:

    使用与LGPL兼容的许可证开源整个项目.(这个很难看.)

    向用户提供目标代码(提供给链接器的中间阶段编译文件),以便他们可以获取库的更新版本并手动链接它.这是一种丑陋的解决方案,但它是允许的.

最好的办法就是使用DLL.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有