2013-10-31 279 views
1

我有新任務來研究開發C++跨平臺(Mac/Win)實用程序以滿足我們內部需求的方式。C++跨平臺開發(Windows和Mac OS)

我已經開發了7年,使用不同的「粉紅」語言,如C#,Java,託管C++。 但是在這個任務中,要求是支持Mac,而在Mac上運行的.NET真的很痛苦(從其他使用過這個的人那裏知道)。

所以我開始思考C++是否可以使用C++進行跨平臺開發。 該應用程序不包含任何GUI,但將包含大量的System API調用以及大量的業務邏輯分析。

有沒有可能一些庫允許實現這種類型的任務? 完全可以做到嗎?

+1

C++似乎是一個不錯的選擇。使用現代編譯器(GCC或Clang,最新版本),使用C++ 11和標準庫。如果您需要更多,可以使用多個圖書館館藏,至少請查閱[Boost](http://boost.org/)和[POCO](http://pocoproject.org/index.html)。 –

+0

男人,對不起愚蠢的問題,我很遺憾不知道本機編譯如何工作,但我的意思是,如果我打電話給簡單的CreateProcess winApi函數,它是否適用於這兩個平臺? – StringBuilder

+0

它不會直接工作*,這就是爲什麼您使用庫來封裝平臺之間的差異,例如, 'std :: thread'將在編譯器及其標準庫所支持的所有平臺上創建一個新線程。 –

回答

2

如果我正確理解您的問題,您需要開發跨平臺C++的唯一方法是獲得正確的編譯器。您可以在兩個平臺上使用GCC,甚至可以爲visual studio和xcode使用2個不同的項目文件。這取決於你。就個人而言,我更喜歡GCC。

關於代碼本身,這取決於你用它做什麼。 STD在兩個平臺上都可用(std :: vector,std :: string等),所以代碼應該在兩個平臺上正確編譯。

編輯:順便說一下,大多數平臺特定的東西都可以通過開放源代碼(像增強,但我個人不喜歡提升那麼多)。如果需要的話,你甚至可以看看跨平臺的其他開源項目(ogre3d等)。

2

是的,您可以編寫標準,ISO C++並在兩個平臺上運行程序。

當您需要使用特定於平臺的API來實現某些功能時(例如,在Windows上使用Win32以及在Mac OS上使用POSIX API),那麼您要做的是編寫自己的包裝函數來抽象出平臺特定的細節,然後使用包裝在你的程序的其餘部分。

CMake這樣的工具將允許您使用Visual Studio在Windows和Xcode上構建程序,以在Mac上構建而無需手動管理單獨的Visual Studio和Xcode項目文件。