打印

如何在GNOME平台上开发应用程序?

如何在GNOME平台上开发应用程序?

我想学习开发gnome应用程序 ..... 要如何开始 ????

收集整理 jcome     校对 gnome/cn doc team


要阅读什么文档
要使用什么程序
最好的开始方法是什么

您的意思是基于GNOME的应用程序的编写,还是 GNOME 的开发?这两者之间存在众多的重叠的地方。让我们来看一看:

1. 取决于您的目的。如果您想编写一个新的GNOME应用程序,那么需要一支铅笔和一张纸,在纸上开始设计您的非常酷的新应用程序(这要花点时间)。

要不然您需要确定哪一个是您最感兴趣的GNOME模块,然后用心研究其运转:阅读www站点,加入相关邮件列表(可能是多个),并顺便访问访问 IRC。

2. 现在您基本上了解要开始编程所需的库(libraries)/工具,然后要*学习*它们的运转。去http://www.imendio.com/projects/devhelp/ 下载devhelp。它是一个显示库API文档(从源代码中自动生成)的程序。在GNOME编程中,它将是一个相伴始终的朋友。

同样,访问developer.gnome.org 和 live.gnome.org 依照您感兴趣的模块/库查找文档。http://developer.gnome.org/doc/tutorials/ 是一个非常好的切入口。

同样,不要忘记GNOME的技术许多都是来自FreeDesktop.org,所以请去那儿查找一下您要的文档。

最后是永远的google.com。

最详细但是最难从文档中得到的是源代码本身。攫取最新版得源码拷贝——如果您是一个非常厉害的coder,否则您会因为尝试一次阅读全部代码而头痛。

3. 学习如何编程(不管是哪一种程序)的最佳途径是写写简单示例程序。掌握多了以后,就可逐步逐步过渡到复杂的代码,直到能够编写一个基本应用程序。

如果学习的模块有相关教程的话,打开文本编辑器和终端,输入并编译您正在阅读的代码。交互是最好的学习方式。

如果没有教程,写一个用于自学(把您自己看为最终的观众)。即使永不向他人展示,它也将是让您更深入了解、掌握相关代码的无价之宝。

学习没有教程的模块是艰难的,因为您只有API文档和源代码相伴。

如果模块是一个库,以浏览API文档获得其运转的概念作为起步,然后开始编写使用该API的小试验和错误程序。如果遇到障碍并且不能靠自己解决,可以去邮件列表(多个)和IRC来获得同道程序员的帮助。但是,要记得核心开发者/维护者是忙碌的人,您应该在他们最常光顾的地方向他们求助。

如果模块是一个应用程序,相关API是源代码中的头文件(.h),而且大都没有好的文档。只能从源代码开始学习。再次强调,小的试验和错误改动源代码是最佳的方法之一。

编码的基础学习是一项永无止境的任务,不需要一次就给自己下达学习全部东东的任务。把它分解成一小块一小块,隔段时间就起身,出去呼吸一下新鲜空气。

4. 至此您因该对该模块有个相当基础的了解。如果您的目标是编写自己的应用程序,请跳到下一步。如果您的目标是帮助GNOME(编程),那么需要以您能做些什么开始询问。记住,开始小,一小块,再按您的方法干大块。

在IRC上看看#gnome-love,或者阅读在live.gnome.org上的GNOME-love章节,或用邮件列表来获得意见和建议,或者直接询问模块的维护者。开始回答邮件列表上您能处理的问题,同时经常参与社区的讨论。Head over to bugzilla.gnome.org ,为自己创建一个帐号,开始关注相关模块的bug。某些模块非常容易判断是相同的,或者可以用更多恰当的细节来更新。如果您有自信,您可以试着建议解决方案或更进一步写个补丁。

5. 学习如何使用开放源代码的开发工具。这些工具数目众多,所以请正确找出您需要了解的。最重要的是CVS,这是所有GNOME模块的最新副本源代码存储仓库,还有“diff”,这是一个基于您写的新代码和来自CVS的原代码的不同生成补丁的程序。

检查developer.gnome.org , live.gnome.org 或者 google.com 来学习这些工具的用法。

6.玩得开心。 如果您不欣赏自己所为,那么干什么都不能长久。

TOP

我认为应该首先检查现有的项目,现在还不是发明轮子的时候,应该把更多的精力融入现有项目中。Galeon+Epiphany就是一个很好的例子。
真男人张湘祥

TOP

用 .Net 语言来编写~~~

哈哈,我不是在说笑的,有一个 Mono Project 支持 .net,我在编译 gnome 2.12时好像发现了它的影子。如果是真的话,哈哈,我想想我是不是还要多学一门 .net 了

只能说是好像,因为我到现在还没编译完,呜呜~~~


人欲盡淨,觀萬物,各復歸其根,精之至也。
  • 不要重复自己(Don't Repeat Yourself )。
  • 约定优于配置(Convention Over Configuration )。

TOP

什么时候gnome和kde有统一的接口。。。。。。。。。。。我就等这个了

TOP

引用:
什么时候gnome和kde有统一的接口。。。。。。。。。。。我就等这个了
这种东西会不会有都很难说,因为GNOME产生的原因之一就是 KDE 的 QT库。两者是水火不相溶的,应该不会有统一的接口。

不过以后会发生什么都很难说,你慢慢等吧,呵呵


人欲盡淨,觀萬物,各復歸其根,精之至也。
  • 不要重复自己(Don't Repeat Yourself )。
  • 约定优于配置(Convention Over Configuration )。

TOP

现在freedesktop.org正在做这件事。包括把桌面放到$home/desktop就是fd.o推动的结果。
[quote:399f169951="heyuqi"]
引用:
什么时候gnome和kde有统一的接口。。。。。。。。。。。我就等这个了
这种东西会不会有都很难说,因为GNOME产生的原因之一就是 KDE 的 QT库。两者是水火不相溶的,应该不会有统一的接口。

不过以后会发生什么都很难说,你慢慢等吧,呵呵[/quote]

TOP

[quote:7656537cec="heyuqi"]用 .Net 语言来编写~~~

哈哈,我不是在说笑的,有一个 Mono Project 支持 .net,我在编译 gnome 2.12时好像发现了它的影子。如果是真的话,哈哈,我想想我是不是还要多学一门 .net 了

只能说是好像,因为我到现在还没编译完,呜呜~~~[/quote]

想想俺当时是多么的无知啊   有点弱智,呵呵


人欲盡淨,觀萬物,各復歸其根,精之至也。
  • 不要重复自己(Don't Repeat Yourself )。
  • 约定优于配置(Convention Over Configuration )。

TOP

[quote:f29ded45a1="heyuqi"]

想想俺当时是多么的无知啊   有点弱智,呵呵[/quote]

睇吓你舆呷几犀利波!

TOP

[quote:832ce834b5="jcome"][quote:832ce834b5="heyuqi"]

想想俺当时是多么的无知啊   有点弱智,呵呵[/quote]

睇吓你舆呷几犀利波![/quote]
哪有,还是那么笨。

同我平时打的都唔同~~,我地讲“而家”,大佬你讲“舆呷”。哈哈,如果我点睇唔明你打的字,点算啊?  


人欲盡淨,觀萬物,各復歸其根,精之至也。
  • 不要重复自己(Don't Repeat Yourself )。
  • 约定优于配置(Convention Over Configuration )。

TOP

我唔识讲白话 既,唔好意思

TOP

[quote:24a4c94371="jcome"]我唔识讲白话 既,唔好意思 [/quote]

  


人欲盡淨,觀萬物,各復歸其根,精之至也。
  • 不要重复自己(Don't Repeat Yourself )。
  • 约定优于配置(Convention Over Configuration )。

TOP

现在大家可以使用codeblocks了。
可以自己编译,或去bitworld.ys168.com看看。
附件: 您所在的用户组无法下载或查看附件

TOP

[quote:780a6b8d17="mozilla"]什么时候gnome和kde有统一的接口。。。。。。。。。。。我就等这个了[/quote]
Portland好像就快出来了。用mono编写的程序有.exe后缀,而且速度很慢。至少我用的beagle之类的就是如此,在gentoo编译gnome-2.14时索性使用-mono的USE,以免beagle降低效率。并且感觉是不是很伤硬盘呢?

TOP

我觉得用python+pygtk+glade比较方便,开发一些不大的程序很方便

TOP

一个很傻的问题

Gnome是否支持QT开发

TOP