簡體   English   中英

Cygwin C ++中的開發

[英]Development in Cygwin C++

幾年來,我一直在Windows的Visual Studio和Linux的GCC(代碼塊)中編寫程序。 我的大多數庫在Windows和Linux中都可以無縫編譯。 但是目前我有點困惑,因為我必須使用Cygwin創建一個應用程序。 我不是很了解我是否仍在UNIX / Linux環境中,只是通過某種“仿真”在Windows上運行應用程序,還是我只是在Windows上可以訪問某些Linux / Unix功能。 從我從FAQ和文檔中了解的內容來看,在Linux環境中,我的行為應該看起來像。 我在互聯網上找到的所有解釋通常都是非常籠統的,從程序員的角度來看,並不能解釋詳細的差異。

簡短的問題 :使用Cygwin時,是否可以像在Linux上那樣編寫程序,而無需進行任何重大更改?

也許。

許多為Linux編寫的代碼可以在Cygwin中編譯,而幾乎沒有問題,這些問題主要可以通過弄亂預處理器定義來解決。

但是,任何為linux編寫的代碼都可以:

  • 使用Linux驅動程序
  • 直接訪問內核
  • 依賴於執行這兩種操作之一的任何代碼(並且沒有Windows對應的代碼)

不管您修改了多少代碼,都肯定無法正常工作。

Cygwin盡其所能無法完全模仿POSIX系統通常可以做的所有事情( 是的,它是一種模擬器 )。 Cygwin 不是 Windows,而只是其自身機器語言的轉換層。

有關更多信息,請閱讀cygwin的Wikia。

使用Cygwin時,是否可以像在Linux中一樣編寫程序,而無需進行任何重大更改?

平台是不同的,因此您實際上不能期望在Linux上編寫該程序,然后POOF希望它在Cygwin下構建和運行。 但是,如果您不使用Windows下不可用的功能,則不需要進行重大更改。 而且,您可以編寫非平凡的程序,這些程序可以在這兩個程序上構建和運行,可能需要在某些地方添加一些#ifdefs

根據您的問題,我認為您想在Linux上工作,但要編寫在Cygwin下運行的程序。 在這種情況下,您還必須始終在Cygwin環境中進行構建和測試,因此:

  • 使用版本控制,經常提交。 我建議使用gitmercurial這樣的DVCS,它們具有單獨的commitpush ,它將使您更自由地進行提交。
  • 每當您提交/推送時,請執行checkout / pull並在Cygwin主機上構建。 您可以手動或自動執行此操作(通過簡單的自定義腳本輪詢版本控制,或者通過Jenkins等)。
  • 一旦您的代碼停止在Cygwin下構建或工作,請在繼續使用新代碼之前對其進行修復。

如果不是絕對需要Cygwin,那么我會考慮使用Qt SDK。 它也可以用於非Qt項目,Windows上的MinGW工具鏈與Linux上的gcc非常相似。 而且,如果您願意使用Qt,則它具有各種與平台無關的功能,可用於執行您想做的事情,例如發現用於保存文件的標准目錄的位置,使用線程,打印內容,具有GUI ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM