`

win7 64位系统下gtk+ pygtk glade 开发环境配置

 
阅读更多

目标:最小化安装gtk glade pygtk,使用cygwin中的开发工具链进行gtk的开发和pygtk的开发,能使用glade进行界面设计。

 

    开发环境是使用cygwin提供的工具,如make等等。所安装的程序库、Python环境和编译器mingw64都是win32的原生程序,并不依赖于cygwin1.dll。

 

 

一、准备工作:

    由于cygwin的gcc在64位win7下使用存在问题。在链接阶段会出现“Resource temporarily unavailable ”错误。需要使用mingw64来进行编译。mingw64现在已经可以通过cygwin的setup直接安装。安装完成后可以使用i686-w64-mingw32-gcc来编译和链接程序。编译和链接的要分步进行,否则会出现类似找不到lib的错误。MS是单步进行的时候使用的链接器不是mingw64提供的链接器所引起的,没有细究了。

 

二、安装gtk+

    由于gtk开发需要gtk dev和运行库、pygtk也需要运行库,因此我们可以直接选用gtk+项目所提供的all in one bundle。这个包提供了GTK开发所需要的第三方库,也包含了GTK的开发库和运行库。将all in one bundle解开后,将它的bin目录添加到PATH。这时就可以在cygwin用make进行编译了。测试用的Makefile如下

 

CC=i686-w64-mingw32-gcc
GTK_PATH=d:/GTK

CFLAGS=-mms-bitfields -I$(GTK_PATH)/include/gtk-2.0 -I$(GTK_PATH)/lib/gtk-2.0/include -I$(GTK_PATH)/include/atk-1.0 -I$(GTK_PATH)/include/cairo -I$(GTK_PATH)/include/gdk-pixbuf-2.0 -I$(GTK_PATH)/include/pango-1.0 -I$(GTK_PATH)/include/glib-2.0 -I$(GTK_PATH)/lib/glib-2.0/include -I$(GTK_PATH)/include -I$(GTK_PATH)/include/freetype2 -I$(GTK_PATH)/include/libpng14 -Wall

LFLAGS=-L$(GTK_PATH)/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl


gtk_hello:
	$(CC)  -c gtk_hello.c -o gtk_hello.o $(CFLAGS)
	$(CC)  -o gtk_hello.exe gtk_hello.o $(LFLAGS)
 

 

三、安装pygtk

    pygtk项目官网也提供了all-in-one安装程序,里头也包含了一个gtk的运行库,这个我们并不需要。我们只需要选择安装PyGTK,PyCairoPyGObject这三个python库就可以了,底层的dll仍然由之前安装的gtk all in one bundle提供。安装完上面三个Python程序库后,可以用下面的代码测试pygtk安装是否正常:

 

import pygtk
pygtk.require('gtk-2.0')
import pygtk.gtk

如果出现dll找不到之类的错误,可以查看下windows/system32目录下是否有zlib1.dll这个文件。如果有可以试试用GTK+安装目录的bin/zlib1.dll来覆盖它。我的机器上的情况是system32下的这个文件的版本为1.2.3,而GTK带的版本为1.2.5。

 

四、安装glade

    适用于gtk+ 2的glade可以从http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.8/下载。这里提供了几个不同的版本,glade3-bundle_3.8.1-1-20111123_win32.zip里带了gtk运行库,我们虽然不需要使用,但是仍然需要下载它,因为其它包里缺少一些文件,要由这个包提供。

     我们直接使用的是glade3_3.8.1-1_win32.zip,这个包不带GTK运行环境,只包含glade程序本身。将这个包里的文件直接复制到GTK安装目录,它就可以使用之前安装的GTK库了。这时运行glade会提示找不到libxml2-2.dll,可以从glade3-bundle_3.8.1-1-20111123_win32.zip把这个文件复制到GTK安装目录的bin目录下。

 

  我们还需要用glade3-bundle_3.8.1-1-20111123_win32.zip中的share/icons/hicolor覆盖GTK安装目录下的share/icons/hicolor。这是因为glade3_3.8.1-1_win32.zip中还缺少一些图片资源,有些图标会显示不出来。

 

 

0
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics