【问题标题】:Keeping third party libraries separate from program executable将第三方库与程序可执行文件分开
【发布时间】:2018-01-05 04:56:04
【问题描述】:

我已经开始使用 C++ 编写一个项目,该项目使用了一些第三方开源库。我很好奇,我应该如何构建这个项目以避免许可证污染?

如果我要编译单个可执行文件,我将不得不遵守第三方库使用的相同开源许可证,因为我的工作将包含二进制形式的库,对吗?

我使用 Visual Studio 作为 IDE 和编译器。 Visual Studio 中是否有一个可以配置的选项,以便在我构建项目时,所有第三方库都单独包含在它们自己的目录中,允许我的程序使用它们而无需编译到我的可执行文件中?这样我就可以在不同的许可下许可我的项目?

另一方面,我还有一个来自我项目中包含的库之一的源文件。我猜这将是一个问题,无论我如何分离库,因为这个源文件被编译到我的应用程序中?

【问题讨论】:

  • 绝大多数许可证不区分 DLL 和 LIB 编译。
  • 如果你想要明确的;聘请律师。

标签: c++ visual-studio-2015


【解决方案1】:

许可条款通常不会随着您将文件放入的文件夹而改变!

如果您要链接的库 (.lib) 是 GPL,那么您的代码是衍生作品,也是 GPL。同样,如果您直接使用 GPL 项目的源代码,您也创建了一个派生作品。其他更宽松的许可证(如 MIT/BSD)没有此功能。

如果库是 LGPL 并且您动态链接它们(即您发送 .dll - 假设你在 Windows 上)那么你的代码不是 GPL。

请参阅 https://www.gnu.org/licenses/gpl-faq.html,但请注意,他们对如何许可您的代码持有相当偏见的观点是可以理解的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2014-03-19
    相关资源
    最近更新 更多