2008-09-14 58 views
3

隨着所有關於開源項目做文章,怎會有仍然不是很強的標準,使您可以移植代碼(我指的是C/C++JavaC#) 大家是怎麼樣使它自己的湯。

甚至有一些第三方庫如Apache Portable Runtime使移植的代碼

回答

1

我認爲沒有任何單一圖書館的任何人同意的主要原因是每個人的要求都不一樣。當你想打包系統庫時,你通常需要對使用情況進行一些假設,除非你想讓包裝很大並且不可能使用。我認爲這可能是沒有單一的通用跨平臺運行時的主要原因。

圖形界面,原因是,每個平臺都有自己的UI約定,你不能代碼,適用於所有一個GUI,你會簡單地得到一個適合只有一個,甚至根本沒有。

4

是的,沒有標準,但是圖書館像的Qt升壓可以當你做跨平臺開發你的生活變得更輕鬆。

1

有許多庫跨平臺開發更容易對自己,但做一個完整的包裝適用於所有平臺最終被小任和高度定製的,或塊狀,完全荒謬的。

傳送給它的合乎邏輯的結論,對於操作系統的所有方面的完整包裝成爲一個完整的虛擬運行。你不妨製作你自己的編程語言。

1

The ADAPTIVE Communication Environment (ACE)是一個優秀的面向對象的框架,爲所有的低級別操作系統功能(如線程,套接字,互斥鎖等)提供跨平臺支持。它運行在瘋狂的編譯器和操作系統上。

0

如果你確保它與GCC和MS VC完全編譯++,這將是點點額外的努力移植到別的地方去。

+0

如果您在使用GCC和MSVC的Windows上成功構建了某些東西,則無法保證其在任何其他地方能夠工作:endianness? (英特爾是小端,其他許多是大端)整數/指針大小? (16/32/64都是常見的)API? (Linux和UNIX沒有WINAPI ...)我確信可以找到其他的例子。我敢打賭,在IBM z/OS上構建MSVC程序可能非常「有趣」...... – 2014-12-30 11:49:10

3

wxwidgets是大多數窗口管理器的本地GUI小部件上的一個很好的抽象層。

1

作爲語言的C和C++是標準語言。如果您在編碼時密切關注他們的規則(這意味着不使用特定於供應商的擴展),您的代碼應該是可移植的,並且您應該可以在任何OS上使用任何現代編譯器進行編譯。

但是C和C++沒有一個GUI庫,如Java或C#,但也存在一些免費或商業的GUI庫,讓你編寫可移植的GUI應用程序。

我認爲最populars是Qt(商業)和wxWidgets(FOSS)。根據wikipedia還有更多。

也有提升,而不是一個GUI庫boost是一個非常好的補充C++的STL。事實上,一些升壓庫將被添加到下一個C++標準中。