是否有任何開發環境允許您擁有一個可以在不進行太多調整的情況下編譯爲Linux,Mac OS和Windows版本的代碼庫?我知道這就像要求聖盃在哪裏被燒壞一樣,但也許存在這樣的事情。謝謝。編譯爲Linux,Mac OS和Windows的桌面開發環境
回答
可能像CodeBlocks?
我聽說這是可能的。你的編譯器需要支持這個。我知道的唯一一個是GCC,但它顯然需要一個特殊的配置。但是,我從來沒有使用過這個功能。我只看到它存在。
你所尋找的被稱爲 「Cross Compiling」
感謝您花時間回答。 – infocyde 2010-04-05 16:51:55
這是通過一些機制實現的,其中最突出的是構建系統和某些系統的特定版本的代碼。你所做的就是編寫你的代碼,如果它需要一個操作系統API,它就會調用一個特定的函數。舉例來說,我可能會使用MyThreadFunction()
。現在,當我在Linux下構建時,我得到了這個MyThreadFunction()
的linux特定版本,它調用pthread_create()
,而Windows版本調用CreateThread()
。這些特定的平臺文件中也包含相應的內容。
要做的另一件事是使用庫提供跨平臺的一致的接口。 wxWidgets就是用於編寫桌面應用程序的平臺之一,Qt和GTK +也是如此。任何你使用它的庫都值得嘗試找到一個跨平臺的實現。這裏有人會毫無疑問地提到Boost。我知道的另一個系統是Apache Portable Runtime(APR),它提供了一系列的東西來允許httpd在Windows/Linux/Mac上運行。
這樣,您的核心代碼庫就是與平臺無關的 - 您的構建系統包含系統特定位和您的代碼庫將它們鏈接在一起。
現在,你可以從一個桌面做到這一點嗎?我知道你可以從Linux編譯Windows,也可以從Linux編譯Mac OS X,但是我懷疑你是否可以從Windows-Linux開始編譯。無論如何,您需要測試您在每個平臺上構建的內容,因此我的建議是運行虛擬機(請參閱vmware/virtualbox)。
最後,編輯/環境:使用任何適合你的東西。我在Linux上使用Eclipse/GVim,在Windows上使用Visual Studio - VS是我的「Windows構建系統」。
感謝您花時間回答,這裏有一些有用的信息。 – infocyde 2010-04-05 16:51:24
Qt是一個很好的C++庫/ API /框架,Qt Creator是一個非常令人愉快的IDE。
- 1. 爲Linux開發桌面環境
- 2. 從Linux/Windows編譯爲Mac
- 3. 構建和編譯桌面Mac的PJSIP
- 4. 將Mac OS X SpriteKit應用程序編譯爲Windows或Linux
- 5. 使用適用於Windows和Mac OS的Xamarin開發桌面應用程序?
- 6. QScrollBar與編譯到桌面和嵌入式Linux環境之間存在差異
- 7. Rails開發Mac OS或Windows
- 8. 在Linux上建立一個開發環境,針對Linux和Windows
- 9. 爲Git,Github和Github桌面的Windows/Linux/Mac之間的區別
- 10. C++跨平臺開發(Windows和Mac OS)
- 11. 從Mac開發交互編譯C++/QT for Windows,Linux
- 12. 在Mac OS X下編譯Linux程序
- 13. mac osx開發環境
- 14. getenv - Mac OS X和Linux上的環境變量
- 15. 預編譯在開發環境
- 16. 安裝Linux桌面/ GUI環境
- 17. Android開發環境Linux
- 18. 如何在mac os上使用vagrant時打開windows桌面?
- 19. 可以在Windows和Linux環境下開發的Web框架
- 20. 爲linux,mac,windows開發「文件系統」
- 21. Ruby開發環境(OS X與Ubuntu)
- 22. ruby開發環境
- 23. mac os環境變量集
- 24. Rails:將開發環境從windows(mingw32)移到OS X mountain lion
- 25. 開發平臺的Windows和OS X桌面應用程序的首選
- 26. 在Windows上erlang的開發環境
- 27. 單個makeFile-Windows/Linux/Mac OS
- 28. Django開發環境破壞以下Mac OS 10.7重新安裝
- 29. iphone,mac os開發和IBOutlets
- 30. 以編程方式在Linux中檢測桌面環境C
這正是我所期待的。謝謝。我知道一些較舊的產品也用於這樣做,但我不認爲它們已經存在了。 – infocyde 2010-04-05 16:50:59