我有一些代码可以在使用cygwin的Windows机器上编译和运行。代码本地是Linux,在cygwin中用g ++编译。
在该代码中,我想在不释放源代码的情况下重新分发几个库。是否可以创建可移动到安装了cygwin并能够成功链接到其他Windows机器的可移植对象文件?
答案 0 :(得分:1)
MinGW project是Windows的GCC套件(以及其他工具)的端口。
如果在Windows下需要编译器和/或gcc,只需使用不带Cygwin的MinGW软件包。
答案 1 :(得分:1)
如果您的代码链接到Cygwin DLL(如果您在Cygwin中使用g ++构建它,它会执行此操作),您的代码会受到GPL的影响。如果您分发二进制文件然后,无论您是否自己分发Cygwin的任何部分,您还必须分发源代码。
当您构建链接GPL代码的代码时,该链接代码也会在GPL下强制执行。无论喜欢与否,这都是GPL背后的重点。
您可以通过两种方式分发二进制文件,而无需根据GPL提供源代码:
通过将代码重写为不需要Cygwin提供的Linux风格的API来消除对Cygwin的依赖。
Buy a Cygwin licence from Red Hat。这将使您有权链接Cygwin DLL并分发所有二进制文件,而无需在GPL下发布源代码。
修改:我还推荐您my answer to a related question on the Cygwin GPL licence。