對1: 是的。套接字庫隨Cygwin一起提供 - 許多基於套接字的應用程序(如web servers)都包含在基本發行版中。
對2: 是的。我認爲GNU C運行時和庫中的所有'第2節和第3節'系統調用都是由cygwin runtume實現的。您可以在Cygwin附帶的手冊頁中查看它。由Cygwin實現的系統調用和std lib調用的列表可以發現here.
On 3:是的。 Cythwin中包含Pthread。link above中提到的列表也提到了pthread。如果在Cygwin和Linux之間沒有任何變化(假設Cygwin沒有依賴關係),那麼針對GNU庫構建的任何東西都應該工作很少或根本不變。根據CPU架構可能擔心word alignment,endianness和其他特定架構的移植問題,但如果你在英特爾針對Windows和Linux,如果任何移植問題,從CPU架構所產生的代碼將有幾個。
在5: Cygwin的將默認建立對自己的共享庫的程序,但是GCC可以交叉編譯的目標其他平臺。您可以(理論上)將GCC設置爲交叉編譯爲編譯器支持的任何目標。有關於與GCC交叉編譯的plenty of resources on the web,我不認爲這個過程在Cygwin上會有很大的不同。
注意Cygwin的二進制文件將無法在Linux上運行 - 或者反之亦然。你仍然需要爲兩者單獨構建。
6:不確定 - 猜測它包含在標準運行時中,可能是因爲某些原因需要包裝Win32線程API。
On 7:
不知道 - 在所有平臺上的g ++上可能都是一樣的。
顯然是一個編譯器錯誤。 Dan Moulding's Answer涵蓋了更詳細的內容。
在8:是。 IIRC QT is available in the standard builds,它肯定會在Cygwin上編譯。與Linux/Unix一樣,Cygwin上的QT使用X11後端,因此您需要運行諸如XMing之類的X服務器。
爲了避免你可能要build QT apps against the Win32 API, X服務器的依賴。可以使用MinGW來實現,它是一組頭文件和庫,用於使用GCC構建本機Win32應用程序。 MinGW的可以從Cygwin環境(在Cygwin交叉編譯到非Cygwin的目標GCC的一個例子)內使用,並從cygwin.com的installer提供安裝的選項。
MinGW的是相當成熟;它具有所有「常見的嫌疑人」 - 你期望在Unix/Linux GCC開發環境中找到的庫和頭文件,並且非常穩定。因爲它是(a)免費的,(b)支持軟件使用的庫和(c)使用GCC,所以它不受到辯論變化的影響,因此它通常是構建開源軟件的Win32端口的首選工具。 MSVC和GCC。但是,語言和可用庫中的這些辯證變體(例如MSVC沒有帶有getopt
的實現)意味着在MinGW和MSVC之間移植程序可能非常繁瑣。我的經驗 - 雖然我只做了幾次這麼簡單,但不是非常廣泛 - 因爲在MinGW32和Linux之間移植應用程序比在MinGW和MSVC之間移植應用程序更容易。很顯然,具有不可移植依賴性(如Win32特定API用法)的應用程序需要爲新平臺重新編寫相關組件,但標準庫,頭文件和語言方言的差異問題會少得多。
QT在提供平臺抽象層方面做得相當不錯。它爲數據庫訪問,線程,I/O和許多其他服務以及GUI提供了API。儘可能使用QT API應該有助於提高可移植性,MinGW附帶的Unix/Linux風格的庫意味着它可以爲您提供一個很好的平臺,讓應用程序能夠在相對較少的平臺相關代碼的情況下在Win32和Linux之間移植。
編輯: Cygwin中的Qt開發包:
- QT4:Qt應用程序框架(源)
- QT4-devel的工具:Qt4的助理,設計師,和語言學家
- QT4 -doc:Qt4的API文檔
- QT4-qtconfig:Qt4的桌面配置應用
- QT4-qtdemo:Qt4的演示和實例
您可能還需要gcc4-g ++和其他一些零碎的東西。 This listing on the cygwin web site有一個包的列表。
在cygwin中使用QT哪個軟件包必須安裝? – SjB 2010-01-21 18:28:50
qt4- * - 請參閱編輯。 – ConcernedOfTunbridgeWells 2010-01-21 22:52:04
在QT中感謝很好的答案! – SjB 2010-01-22 08:59:06