【问题标题】:Is there a cross-platform framework for C?是否有 C 的跨平台框架?
【发布时间】:2012-04-06 05:36:14
【问题描述】:

当然,我很想知道是否有任何类型的 C 语言编程库/框架用于跨平台编程。我的意思是已经有诸如 Wxwidgets、Boost、Qt、U++ 等用于 C++ 的框架,但我还没有找到任何用于 C 的框架。

更新信息:

我们正在尝试构建一个底层框架/库以用于我们的项目。我们将消除 dotnet,而是为那些快速且要求不高的库提供对应物。

我们将从事基于服务器/客户端的项目,因此底层服务必须快速且可移植。 GUI 现在不是我们的首要任务,但提供线程功能的库对我们来说很重要。

对于 ANSI 部分,我认为目前我们可以接受,除非将来有什么改变。

【问题讨论】:

  • 谢谢,gtk+ 不只是一个 GUI 工具包吗?

标签: frameworks cross-platform


【解决方案1】:

如果您编写普通的 ANSI C,它应该适用于所有 POSIX 系统。 跨平台 C 库最成功的例子是标准 C 库本身(恕我直言)。

如果您正在寻找 GUI 工具包 GTK 就是答案, 如果您正在寻找终端用户界面,ncurses 非常便携。

如果您正在寻找通用库,只要它们是用 ANSI C 编写的,应该几乎可以在任何地方使用,只要它不使用系统级 API。

您能告诉我们,您正在寻找什么样的库/框架?

【讨论】:

  • 谢谢,。我们正在尝试构建一个底层框架/库以在我们的项目中使用。我们将消除 dotnet,而是为那些快速且要求不高的库提供对应的。我们将从事基于服务器/客户端的项目,因此底层服务必须快速且可移植。 GUI 现在不是我们的首要任务,但提供线程功能的库对我们来说很重要。对于 ANSI 部分,我认为我们目前对此很好,除非将来改变它。
  • @Hossein 尝试查看这个问题的答案stackoverflow.com/questions/5613646/… 你可能会发现一些有用的库链接
  • 谢谢,我想我会坚持使用 OpenMP 一段时间。到目前为止,OPenMp 和 Glib 似乎就足够了。再次感谢您
【解决方案2】:

GTK+ 是长期建立和积极维护的跨平台纯 C(或主要)工具包。您不仅可以找到在线文档,还可以找到有关它的书籍。它是支持GNOME 项目的框架。

首先,GTK+ 旨在使用 UI 构建应用程序。然而,即使您不需要 UI,您也会发现一些 GTK+ 组件,即GLib,提供与 Qt 相当的通用多平台支持。实际上,我最初需要一个没有 UI 的框架,并选择了 GLib 而不是 APR,因为我能够更轻松地找到文档和教程。

GTK+ 最初是在 UN*X 和 X-Windows 上开发的,它仍然是您可以最轻松地运行它的平台。我不会说在 Windows 上更难。只是你有更多的编译环境选项。我从准备好的 GTK+ 包和 MinGW 开始,但最终将 GTK+ 与 MSVC 集成。

GTK+ 已经存在很长时间了,有些人可能会觉得它老派了。另一方面,它表明它已被证明是稳定和有用的。还有C++ 和C# 的绑定。

与每个大型框架一样,您需要的越多,学习的时间就越长。但反过来它也可以。你学的越多,你就能用它做的越多。一致的编码风格有助于习惯它。

--- 费达

【讨论】:

  • 非常感谢,确实信息量很大。我更新了我的帖子,其中包含了我们提出这样一个问题的目的和需要的信息。 GLib 看起来很有趣,但我们需要提供更多功能的东西,例如支持线程工作等。
  • 不客气。虽然 GLib 也支持线程和网络,但它的开发主要不是为了性能。还有其他专门针对客户端/服务器应用程序的。 Another thread here 指 ACE、POCO 和 ASIO,例如恐怕都是 C++……我评估了一次ASIO,我喜欢在特定操作系统上使用最快的支持,比如 Windows 上的 IOCP。有关于异步IO的线程here和here。
  • 非常感谢@Ferdinand Prantl。其中,似乎只有 Glib 是 C 友好的(兼容-支持它),其余的似乎都属于 C++。无论如何,我认为在 OpenMP 和 Glib 之间,我现在将使用 OpenMP,如果我们需要更多,我们有 Glib,感谢你 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多