gpt4 book ai didi

qt - 静态链接 Qt 与开源版本

转载 作者:行者123 更新时间:2023-12-04 11:13:38 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




我正在使用 Qt 开源版本开发应用程序。由于我不想提供 Microsoft Visual Visual C(++) 可再发行组件,因此我想使用 Qt 的静态链接版本。
Qt 许可信息 says如果我想在我的应用程序中使用静态链接,我“应该”使用商业 Qt 许可证进行开发,尽管当我使用 configure -static 时用于构建静态 Qt 库的命令 命令提示符询问我是否使用 Qt 的商业或开源版本。

那么有没有可能用开源版本来构建Qt呢?我需要商业版才能使用静态链接吗?我不会出售应用程序。

最佳答案

编辑 2016 年 4 月

实际上,我最近一直在深入阅读有关 LGPL 的内容,并询问了一些有关该主题的专家。事实证明,在闭源应用程序中无法为 Qt 使用静态链接更多的是一种培养的传说,与现实无关。

LGPL 要求最终用户可以将应用程序重新链接到不同版本的库。使用动态链接是实现这一目标的一种方法,但您可以同样轻松地提供目标文件,这样您就不必打开源代码并且仍然满足 LGPL 要求。

在 Qt 网站上有 2 个法律常见问题解答,其中没有一个直接说明您不能这样做。正如它没有说明你可以。但是,如果您这样做,至少有几个例子暗示了模糊的法律威胁。我认为对所有这些都有一个很好的解释——他们不能说你不能不发表一个实际的谎言,这也可能对他们产生负面的法律影响,他们愿意劝阻这样做而不是鼓励它,因为它有可能迫使更多人购买商业许可证。

简而言之,是的,你可以 ,而你绝对是应该由于最近 Qt 已经成为一个活生生的部署 hell ,加上在静态构建中的 Qt 5.7,QML 文件整齐地隐藏在可执行文件中,而不是在文件系统中,供任何人篡改。只要确保:

  • 您的 Qt 版本仅包含在 LGPL 下许可的模块,而没有任何 GPL
  • 您的应用程序的关于部分提到它正在使用 Qt 并包含一个链接,您可以在其中下载应用程序的目标文件
  • 在您的应用程序中包含所有相应的许可证文件

  • 最后,您的应用程序实际上必须是“可重新链接的”,也就是说,它必须能够与提供必要功能的兼容库版本一起使用。这意味着如果您在构建之前对 Qt 进行了修改,您也必须以源代码的形式提供这些修改,但只提供对 Qt 的修改,而不是您的应用程序的源代码。

    更新:

    这里直接摘录自 GNU FAQ :

    For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3):

    (1) If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.



    这句话说得很清楚。

    旧的原始答案:

    只要您的应用程序是开源的并且您提供源代码,就可以静态构建 Qt。如果您想保持源代码关闭,您要么需要昂贵的商业许可证,要么需要使用动态链接。

    顺便说一句,使用 Qt 的静态构建非常好,对于 Qt5,我得到了大约 7-8 MB 的可执行文件,没有外部依赖项,这比您必须随动态链接应用程序一起提供的 20+ MB 额外 dll 好得多。

    有关更多信息,您可以观看此视频: Making the correct license choice when developing with Qt

    总而言之,能做到吗? 100% 是的。应该做吗?这取决于,对于个人/测试/学习目的,它 100% 可以,但是,如果您打算分发生产级软件,无论是否商业化,开源与否,您最好先咨询律师。整个主题不必要地复杂,需要解释,因此咨询律师变得比昂贵的商业许可证更昂贵。

    关于qt - 静态链接 Qt 与开源版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654613/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com