2012-08-22 70 views
1

我有一些代碼可以在Windows機器上使用cygwin編譯和運行。該代碼原生Linux,並在cygwin中用g ++編譯。cygwin C++靜態/便攜庫,以避免釋放源代碼?

在那段代碼中,有幾個庫我想在不發佈源代碼的情況下重新發布。是否有可能創建便攜式目標文件,可以移動到另一臺安裝了cygwin的Windows機器上,並且能夠成功鏈接到它們?

+0

因爲你已經編輯過這個,我認爲你這樣做是錯誤的,考慮http://www.cygwin.com/我建議看一看** Cygwin不是**部分。 – user827992

回答

1

有一個MinGW project這是Windows的GCC套件(和其他工具)的端口。

如果您需要Windows下的編譯器和/或gcc,只需使用不帶Cygwin的MinGW軟件包即可。

+0

錯誤,爲什麼? Cygwin完全有能力連接這些庫,這就是MinGW所有的和更多。 – paxdiablo

+0

MinGW對我沒有用處,我的代碼本身是Linux,需要用g ++編譯 – user788171

+0

MinGW可以在幾臺機器之間移植,只需複製和粘貼,並且可以執行所需的操作。另外我不認爲用Windows下的Cygwin編譯是一種很好的方法,因爲Windows和Cygwin是兩種不同的環境,據我所知,在Windows下沒有使用Cygwin的IDE,所有免費的IDE都使用MinGW。 – user827992

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