【问题标题】:Suggestions for porting linux application to windows [closed]将 linux 应用程序移植到 Windows 的建议 [关闭]
【发布时间】:2025-05-24 16:00:01
【问题描述】:

我想将在 linux 下编写的应用程序移植到 windows。目前我正在使用 Cygwin,但我很好奇是否有任何其他选项不会强迫我发布我的源代码,因为我现在无法这样做。除了必须完全重新编写它或购买许可证之外,还有其他选择吗?

【问题讨论】:

  • 为什么你认为使用 Cygwin 会迫使你发布你的代码?
  • Cygwin 运行时 (cygwin1.dll) 在 GPL 下获得许可。即使您动态链接到 GPL 库,许可证仍然适用。
  • 按照我对 GPL 的理解,你可以动态链接到一个 dll 就好了,但是当你静态链接时,你创建了一个衍生作品,那就是你需要发布源代码的时候。至于这个问题,我总是更喜欢 MinGW 而不是 Cygwin。
  • 这不是真的。只有 LGPL 允许动态链接。
  • 好的,我已经纠正了。我一直发现开源许可证的数量及其细微的差异非常令人沮丧。

标签: windows linux cygwin


【解决方案1】:

MinGW 没有 Cygwin 那么多的许可限制,但它可能需要更多的努力才能让您的代码在其下运行。

【讨论】:

    【解决方案2】:

    我绝不是专家。话虽如此,如果你不打算发布你的应用程序,我相信你可以在内部将它与 GPL 的东西一起使用。只有当您开始分发二进制文件时,您才受 GPL 约束,必须随二进制文件或用户请求发布您的源代码。 例如公司可以修改一些 GPL 的源代码,并在内部使用它,只要他们不将代码或应用程序分发到公司之外。

    所以这取决于你打算用你的应用做什么。

    您现在可以使用 cygwin 来使其正常工作,然后逐渐用原生 Windows 代码替换应用程序的各个部分,直到完全取消 cygwin。

    我知道这可能不是你想要的形式,但我想我会把它扔在那里。这些天,他们应该有几个法律/许可课程被推入 CS 学位。

    【讨论】:

      【解决方案3】:

      请向我们提供有关您的申请的更多信息。简单的命令行实用程序?使用 KDE 库?使用 linux 内核扩展?等等等等。仅供内部使用?用于企业桌面?供最终用户使用?这些都会改变我们的建议。

      我还建议使用 MinGW。

      移植的基本流程:

      1. 安装 MinGW 和 MSYS
      2. 运行您的 Makefile。
      3. 您可能会遇到错误,修复它(通过更改代码或将其注释掉)
      4. 通过 Makefile 重新编译。
      5. 重复 2-4 直到编译没有错误。
      6. 然后测试您的应用程序,并追踪您可能引入的任何错误。

      【讨论】:

        【解决方案4】:

        Cygwin 也有商业许可证。

        http://www.redhat.com/services/custom/cygwin/

        【讨论】:

          最近更新 更多