cygwin を使用して Windows マシンでコンパイルして実行できるコードがいくつかあります。コードはネイティブ Linux であり、cygwin で g++ でコンパイルされています。
そのコードには、ソース コードを公開せずに再配布したいライブラリがいくつかあります。cygwin がインストールされた別の Windows マシンに移動できるポータブル オブジェクト ファイルを作成し、それらに正常にリンクすることは可能ですか?
cygwin を使用して Windows マシンでコンパイルして実行できるコードがいくつかあります。コードはネイティブ Linux であり、cygwin で g++ でコンパイルされています。
そのコードには、ソース コードを公開せずに再配布したいライブラリがいくつかあります。cygwin がインストールされた別の Windows マシンに移動できるポータブル オブジェクト ファイルを作成し、それらに正常にリンクすることは可能ですか?
コードが Cygwin DLL にリンクしている場合 (Cygwin で g++ を使用してビルドした場合にリンクします)、コードは GPL の影響を受けます。バイナリを配布する場合、Cygwin の一部を自分で配布するかどうかに関係なく、ソース コードも配布する義務があります。
GPL コードに対してリンクするコードを作成すると、そのリンクされたコードも GPL の下で強制されます。好むと好まざるとにかかわらず、それが GPL の背後にあるポイントです。
GPL の下でソースを利用可能にする義務を負わずにバイナリを配布するには、次の 2 つのオプションがあります。
Cygwin が提供する Linux スタイルの API を必要としないようにコードを書き直して、Cygwin への依存を取り除きます。
Red Hat から Cygwin ライセンスを購入します。これにより、Cygwin DLL にリンクし、GPL の下でソース コードをリリースする義務を負うことなく、すべてのバイナリを配布する権利が得られます。
編集: Cygwin GPL ライセンスに関する関連する質問に対する私の回答も参照してください。
Windows 用の GCC スイート (およびその他のツール) のポートであるMinGW プロジェクトがあります。
Windows でコンパイラや gcc が必要な場合は、Cygwin なしで MinGW パッケージを使用してください。