2012-04-06 245 views
0

我很想知道是否有任何種類的C語言編程庫/框架用於跨平臺編程當然。我的意思是已經有框架可用,例如Wxwidgets,Boost,Qt,U ++等等,但是我還沒有找到任何用於C的框架。C是否有跨平臺框架?

更新的信息:

我們正在試圖建立一個基本框架/庫在我們的項目中使用。我們將消除dotnet,而是爲那些速度快而要求不高的庫提供一個對應。

我們將致力於基於服務器/客戶端的項目,因此底層服務必須快速且便攜。 GUI現在不是我們的首要任務,但提供線程功能的庫對我們來說非常重要。

對於ANSI部分,我認爲我們目前沒有問題,除非將來有所改變。

+0

你可以用gtk +和C – AurA 2012-04-06 05:39:51

+0

謝謝,但不是gtk +只有一個GUI工具包嗎? – Breeze 2012-04-06 06:43:57

回答

0

如果你寫普通的ANSI C,它應該適用於每個POSIX系統。 跨平臺C庫最成功的例子是標準C庫本身(恕我直言)。

如果您正在尋找GUI工具包GTK是答案, 如果您正在尋找終端UI,ncurses是相當便攜的。

如果您正在尋找通用庫,只要它們使用ANSI C編寫,就應該可以在任何地方使用,只要它不使用系統級API。

你能告訴我們,你正在尋找什麼樣的庫/框架?

+0

謝謝。我們正在嘗試構建一個底層框架/庫,以用於我們的項目。我們將消除dotnet,而是爲那些速度快而要求不高的庫提供一個對應。 我們將在基於服務器/客戶端的項目上工作,因此底層服務必須快速且便攜。 GUI現在不是我們的首要任務,但提供線程功能的庫對我們來說非常重要。 和ANSI部分,我認爲我們目前沒有問題,除非在將來改變這一點。 – Breeze 2012-04-06 09:17:22

+0

@Hossein試着看這個問題的答案http://stackoverflow.com/questions/5613646/threading-in-c-cross-platform你可能會發現一些有用的鏈接到庫 – BigMike 2012-04-06 10:00:11

+0

謝謝,我想我堅持使用OpenMP for同時。到目前爲止,OPenMp和Glib似乎已經足夠。 再次感謝你 – Breeze 2012-04-06 15:15:04

0

GTK+已經建立並積極維護跨平臺的C-only(或主要)工具包。你不僅會發現在線文檔,還會發現有關它的書籍。它是備份GNOME項目的框架。首先,GTK +旨在用UI構建應用程序。然而,即使你不需要UI,你也會發現一些GTK +組件,即GLib,提供了與Qt相媲美的通用多平臺支持。實際上,我首先需要一個沒有UI的框架,並且選擇了GLib,因爲我能夠更輕鬆地找到文檔和教程。

GTK +最初是在UN * X上開發的一個X-Windows,它仍然是您可以最輕鬆地運行的平臺。我不會說在Windows上它更難;只是你有更多的編譯環境選項。我從準備好的GTK +包和MinGW開始,但最終將GTK +與MSVC集成在一起。

GTK +存在了很長時間,有些人可能會發現它老派。另一方面,它表明它已被證明是穩定和有用的。還有C++C#的綁定。

與每個大框架一樣,您需要的框架越多,學習的時間就越長。但是相反,它也起作用。你學得越多,你就可以用它做得越多。一致的編碼風格有助於習慣它。

--- Ferda

+0

非常感謝,確實非常翔實。 我用我們的目的信息更新了我的帖子,並且需要提出這樣的問題。 GLib似乎有點麻煩,但我們需要......它提供了一些更多的功能,例如支持線程和類似的工作。 – Breeze 2012-04-06 09:24:24

+0

不客氣。雖然GLib支持線程和網絡,但它並不主要是爲了性能而開發的。還有一些專門用於客戶端/服務器應用程序[另一個線程](http://bit.ly/xjdFUR)是指ACE,POCO和ASIO,例如,所有這些都是C++,恐怕...我曾經評估過[ASIO](http://think-async.com/Asio/),我喜歡在特定的操作系統上使用最快速的支持,例如Windows上的IOCP 。有關於異步IO的線程[here](http://bit.ly/HjidRO)和[here](http://bit.ly/HBybRF)。 – 2012-04-06 11:59:53

+0

非常感謝親愛的@Ferdinand Prantl。 其中,似乎只有Glib是C友好的(兼容 - 支持它),其餘的都會記錄到C++似乎。 任何方式,我想OpenMP和Glib之間,我現在將使用OpenMP,如果我們需要更多,我們有Glib感謝你:) – Breeze 2012-04-06 15:17:05