Gio—2.0: Gio是一个提供通用输入输出 (I/O)、网络、进程间通信 (IPC)、设置settings以及其他高级应用功能的类的库。

  • C headers: gio/gdesktopappinfo.h, gio/gfiledescriptorbased.h , gio/gio.h , gio/gunixfdmessage.h , gio/gunixinputstream.h , gio/gunixmounts.h , gio/gunixoutputstream.h

  • pkg-config files: gio-2.0 , gio-unix-2.0

GLib—2.0: 基础实用程序库。GLib是一个通用、可移植的实用程序库,提供了许多有用的数据类型、宏、类型转换、字符串工具、文件工具、主循环mainloop抽象等功能。

  • C headers: glib.h

  • pkg-config files: glib-2.0

GModule—2.0: 用于动态加载模块的可移植API,用于动态加载和管理共享库。它允许应用程序在运行时加载插件或共享库,从而实现更灵活的架构。

  • C headers: gmodule.h

  • pkg-config files: gmodule-2.0

GObject—2.0: 对象系统

  • C headers: glib-object.h

  • pkg-config files: gobject-2.0

GThread—2.0: 线程(这部分其实属于GLib),可能之前的版本线程文件夹是独立的。但是现在线程相关文件是在 glib 文件中。目前的 gthread 文件夹留有之前版本定义的线程函数,其实这些函数已经没有什么作用,都是空函数。

  • C headers: gthread.h

  • pkg-config files: gthread-2.0

实际发现,只需要导入glib相关库和头文件,不需要单独导入 `gthread-2.0`。

如何学习Glib相关内容:

  1. 查看是否是标准 Object 对象,标准 Object 对象会有类初始化和实例初始化函数自动运行,还要注意引用计数(内存的释放)。

  2. 运行锁(是否多线程安全)。

  3. 关于示例,可以从 test 里面参考。