WEB开发网
开发学院软件开发Python 在 Python 中封装 GObject 阅读

在 Python 中封装 GObject

 2007-03-29 12:14:54 来源:WEB开发网   
核心提示: 尽管名称源可能存在混淆,但该 C 代码非常简单,在 Python 中封装 GObject(6),它初始化 GObject 和 trayicon 模块,然后向 Python 注册这些类,如果它没有编译和链接,请仔细检查这些阶段,现在我们有了所有代码块,就可以生成共享对象了

尽管名称源可能存在混淆,但该 C 代码非常简单。它初始化 GObject 和 trayicon 模块,然后向 Python 注册这些类。

现在我们有了所有代码块,就可以生成共享对象了。将以下内容添加到 makefile:

清单 4. makefile 附加代码部分

CFLAGS = 'pkg-config --cflags gtk+-2.0 pygtk-2.0' -I/usr/include/python2.2/ -I.  
LDFLAGS = 'pkg-config --libs gtk+-2.0 pygtk-2.0'                 
trayicon.so: trayicon.o eggtrayicon.o trayiconmodule.o              
  $(CC) $(LDFLAGS) -shared $^ -o $@                       

让我们再次逐行仔细检查:

CFLAGS = 'pkg-config --cflags gtk+-2.0 pygtk-2.0' -I/usr/include/python2.2/ -I.

该行定义 C 编译标志。我们使用 pkg-config 来获取 GTK+ 和 PyGTK 的 include 路径。

LDFLAGS = 'pkg-config --libs gtk+-2.0 pygtk-2.0'

该行定义链接程序标志。再次使用 pkg-config 来获取正确的库路径。

trayicon.so: trayicon.o eggtrayicon.o trayiconmodule.o

共享对象是根据生成的代码、我们刚才编写的模块代码以及 EggTrayIcon 的实现构造的。隐式规则根据我们创建的 .c 文件构建 .o 文件。

$(CC) $(LDFLAGS) -shared $^ -o $@

这里我们构建最终的共享库。

现在运行 make trayicon.so 应该会根据定义生成 C 代码,编译三个 C 文件,最后将它们全都链接在一起。做得不错 — 我们已经构建了第一个本机 Python 模块。如果它没有编译和链接,请仔细检查这些阶段,并确保早先没有出现会引起稍后出错的警告。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Python 封装 GObject

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接