GLib的便携性如何?

dra*_*ide 11 portability glib

我知道这个问题可能听起来很奇怪,因为GLib是一个可移植性库,但它有多便携?举一个例子:GLib(包括GObject)是在微控制器上运行还是依赖于某种操作系统?

我可以在哪里使用GLib有限制,还是可以在任何可以运行C代码的地方运行?

Jus*_*tin 8

我可以找到GLib的依赖关系的唯一资源是:

编译GLib包

查看"依赖关系"部分 - 非可选依赖关系似乎是:

  • 一个iconv功能
  • 一个gettext功能
  • 线程实现
  • PCRE库

这意味着您需要将这些中的每一个提供(或端口)到目标系统(例如微控制器).虽然不是一个不可逾越的障碍,但线程实现通常意味着某种形式的操作系统.

此外值得注意的是,GLib似乎依赖于"托管"C环境,因此您还需要将标准C库移植到目标环境(而不是"独立"C环境,标准C的子集不需要移植标准C库).查看托管和独立环境.同样,这通常意味着至少一种非常基本的操作系统形式.