Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 仅针对标头的LGPL类许可证C++;图书馆_C++_Templates_Open Source_Licensing_Libraries - Fatal编程技术网

C++ 仅针对标头的LGPL类许可证C++;图书馆

C++ 仅针对标头的LGPL类许可证C++;图书馆,c++,templates,open-source,licensing,libraries,C++,Templates,Open Source,Licensing,Libraries,我的理解是,程序可以动态链接到LGPL库并包含其标题(可能需要修改),而不必在LGPL下发布程序,但对构建动态库的源代码的任何修改都必须在LGPL下发布 实际上,这使人们可以不受限制地使用该库,但他们必须对其所做的任何更改作出贡献 我想发布一个C++库,我把它作为开源软件,我想以同样的精神许可它:允许人们使用它,而不必释放使用它的代码,但是必须释放它对它所做的任何更改。然而,LGPL本身并不适合我,因为我的库完全是头文件库(它是一个模板库) 什么许可证可以达到这个目的?是LGPL3许可证下发布的

我的理解是,程序可以动态链接到LGPL库并包含其标题(可能需要修改),而不必在LGPL下发布程序,但对构建动态库的源代码的任何修改都必须在LGPL下发布

实际上,这使人们可以不受限制地使用该库,但他们必须对其所做的任何更改作出贡献

我想发布一个C++库,我把它作为开源软件,我想以同样的精神许可它:允许人们使用它,而不必释放使用它的代码,但是必须释放它对它所做的任何更改。然而,LGPL本身并不适合我,因为我的库完全是头文件库(它是一个模板库)

什么许可证可以达到这个目的?

是LGPL3许可证下发布的头文件C++库。在他们的网站上有关于它的有用信息

另一个选择是许可证。它类似于LGPL,但它是一种基于文件的许可证:只要不做任何更改,就可以以任何方式使用许可证文件。如果您这样做,您将不得不(仅)共享这些更改。与LGPL相比的一个优势是,您可以静态链接CDDL库,而不共享任何内容(当然,在本例中,这是不相关的,因为您的库只包含头)。缺点之一是它与GPL许可证不兼容(参见MPL许可证下)


另请参见一些。

@R.MartinhoFernandes:Boost许可证是允许的。所有基于它们的衍生作品都可以分发,而无需对项目进行更改。哦,忘了我当时说过的话:)对于投票关闭的人,问题是:请推荐一个更合适的替代StackExchange站点。@HighCommander4:我没有投票关闭,但这可能很好,我投票将这个问题作为离题来结束,因为它是关于许可或法律问题,而不是编程或软件开发。有关详细信息,请参阅。因此,它比CDDL更兼容,因此应该是首选。该页提到只有第3节适用于标题中的代码。它说:“应用程序的目标代码表单可能包含作为库一部分的头文件中的材料。您可以根据自己的选择传达此类目标代码,前提是,如果合并的材料不限于数值参数、数据结构布局和访问器,或小型宏、内联函数和模板(长度不超过十行),您可以同时执行以下两项操作: