类似LGPL的许可证,用于仅包含标头的C++库
LGPL-like license for a header-only C++ library
我的理解是,程序可以动态链接到LGPL库并包含其标头,可能需要进行修改,而不必在LGPL下发布程序,但对构建动态库的源代码的任何修改都必须在LGPL中发布。
实际上,这允许人们不受限制地使用库,但他们必须贡献他们对其所做的任何更改。
我想发布一个我作为FOSS编写的C++库,我也希望以同样的精神授权它:允许人们使用,而不必发布使用它的代码,但必须发布他们对它所做的任何更改。然而,LGPL本身不太适合我,因为我的库完全是头库(它是一个模板库)。
什么许可证可以达到这个目的?
Eigen是根据LGPL3许可证发布的一个仅包含标头的C++库。他们的许可常见问题页面上有关于它的有用信息。
另一种选择是CDDL许可证。它类似于LGPL,但它是一个基于文件的许可证:您可以以任何方式使用许可的文件,只要您不更改它们。如果您这样做,您将不得不(仅)共享这些更改。与LGPL相比,其优点之一是可以静态链接CDDL库,而无需共享任何内容(当然,在这种情况下,这是无关紧要的,因为您的库仅为头)。缺点之一是它与GPL许可证不兼容(见MPL许可证)。
另请参阅CDDL的一些常见问题解答。
相关文章:
- 在CMake中使用find_package时,是否会显式包含标头
- GCC 包含标头(使用"-include")CMake 未检测到的更改
- 使用预处理指令检查是否包含标头?
- 更智能地在C++中包含保护,以便在不同的命名空间中多次包含标头
- 如何在 c++ 中有条件地包含标头?
- main.cpp 如何知道包含标头的源文件?
- 有没有办法告诉 g++ 编译器,而不是在某个 -I 路径中查找包含标头
- QT 如何包含标头和 cpp 文件
- 在 c++ 中,如果包含标头,为什么我会收到'does not a name of type'错误?
- CLion 无法解析类型 std::unordered_map,即使它提示我包含标头并且编译工作
- 是否可以链接到,包括和使用静态库,而无需额外包含标头/文件
- 为什么包含标头会导致"use of auto before deduction of auto"错误?
- 如何告诉qmake在从dbus xml生成文件时包含标头
- GCC Bug,使用尖括号通过宏包含标头时"linux"路径中的字符串"<>"替换为 "1"
- 如何从平台SDK明确包含标头文件
- 包含标头中的搜索路径因编译器而异
- #include < Dbghelp.h> 不包含标头
- 在 main.cpp 以外的文件中包含标头时出现链接器错误
- 尽管包含标头,G++ 链接器仍无法找到函数
- 如何防止在标题中包含标头,以最大程度地减少包含在其他 CPP 中