我在 gobject 上阅读了一个维基百科页面,上面写着,
Depending only on GLib and libc, GObject is a cornerstone of GNOME and is used throughout GTK, Pango, ATK
但是这个GLib API reference页面在其依赖项中列出了 GObject,此 GObject API reference页面在其依赖项中列出了 GLib
如果维基百科页面上所说的是真的, 他们如何相互依赖?它不应该只存在于 GObject 的依赖项下而不存在于 GLib 依赖项下吗?
我很困惑什么取决于什么,或者它们是否相互依赖?如果是,怎么办?
最佳答案
这是文档网站的一个怪癖:它目前将依赖项和相关库混为一谈。由于我同时维护生成文档网站的工具和网站本身,我会尽快尝试修复此问题。
回答你的问题:GLib项目由多个C库组成:
- GLib,一个包含有用数据类型和跨平台 API 的低级 C 库,在编写需要移植到各种平台和架构的 C 代码时非常有用
- GObject,一个用 C 语言编写的面向对象的类型系统
- GIO,一组接口(interface)和类,除其他外,提供一组用于访问文件系统及其内容的复杂原语;低级网络接口(interface);基于D-Bus的IPC接口(interface);以及用于编写复杂应用程序的各种其他高级 API
- GModule,一个在运行时加载共享模块并解析它们的符号的跨平台包装器
所有这些库都是 GLib 的一部分。
在较低的层次上,GLib C 库位于所有其他库的下方,GObject 依赖于 GLib 和 GModule;和 GIO 取决于 GObject。
关于dependencies - gobject 依赖 glib 还是 glib 依赖 gobject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71082942/