学习GObject和Glib的材料

51

我对 C 语言很熟悉,但需要学习 GObjectGlib 以使用 gstreamer。在网络上找到的都是 Gobject 参考手册,虽然不错,但希望能够找到以 Gobject/Glib 为主题的教程,因为我的重点是 gstreamer。

因此,请分享一些其他学习 glib 和 gobject 的资源。

6个回答

45

从 Glib 开始,这很容易并且在这里有很好的描述:Glib 参考手册

GObject 主要是为了实现面向对象而产生的大量样板代码。尝试使用GObject 参考手册中找到的 "maman bar" 示例

对我来说,最难理解的是 GStreamer。文档很好,但需要阅读很多内容 (GStreamer 文档)。阅读基础知识后,尝试使用 gst-launch 从命令行启动管道。然后阅读关于应用程序开发的完整手册并进行一些示例。在尝试构建自己的插件之前,请查看一些简单的插件并尝试了解不同的部分,一个简单的入门点是identity 插件

祝你好运!

/Joel Larsson


12
您可能会对我上传到 GitHub 的这些示例程序感兴趣,这是在阅读 GNOME 开发者指南并仔细阅读 GObject 手册后上传的。请查看这里

+1 你有一个使用 GAsyncReadyCallback 的简单示例吗? - resultsway
不错的例子。你有信号类的示例吗?在你的代码中找不到g_signal_newv。来自https://developer.gnome.org/gobject/stable/signal.html - kravemir
@Jake,“gobject手册”在哪里?我只能在这里找到“参考手册”--- https://developer.gnome.org/gobject/2.68/. - Clock ZHONG

6

还有一个"官方Gnome 2开发者指南"。请参见该书的第59页及其后内容... 检查gtk的来源也是个好主意。我花了几个星期的时间学习它,并且发现这本书非常有帮助。相当繁琐的是获得正确的构造函数和初始化顺序需要耗费 "相当" 的精力。 你应该查阅GObject文档中的第4章。虽然它并不覆盖所有内容,但与书籍一起使用还是很好的。我建议从一个非常简单的派生自GObject的玻璃表单开始,以更好地理解基本原理。

人们总是有两种结构。一种是类结构,其中存储所有函数指针; 另一种是实例结构,代表一个对象。这是最重要的事情。

另一个有点难以理解的是内存管理的引用计数。如果您之前接触过Objective-C和/或libapr和/或COM,则会有所帮助。

问候 弗里德里希


5

这本书是我发现的最好的GTK+书籍,其中有一章关于GLib,但参考手册是学习和了解最新信息的最佳途径。


5

使用GLib集合管理C数据是介绍glib集合(链接、哈希表、数组、树、队列、关系)的入门教程。文中包含了大量示例,非常适合初学者。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接