2012-04-06 153 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