我的目标是选择Moblin作为嵌入式的Linux,Moblin 2对于Clutter由更好的硬件加速的支持。clutter最近发布的0.9的版本,感觉离1.0的正式release版本又迈进了一步。如果在嵌入式的设备中提供很好的图形效果,就我们办公司的小妹妹说要炫,使用native的方式可能比较好。例如有厂家用汇编作为widget引擎,Moblin建议使用native的clutter来处理图形。据说GTK也可以调用native,QT是个收费的东东,我们不考虑。无论如何第一步需要安装Clutter。
如果使用apt-get的方式得到的版本是0.6,需要在clutter中获取最新的版本,这个却装了我大半天,即使有step by step的安装说明,仍出现了很多情况。下面讲讲安装的过程。
一、检测glib的开发环境:
export PREFIX=$(pkg-config --variable=prefix glib-2.0),但是根据echo $PREFIX,没有显示,我们直接使用pkg-config --variable=prefix glib-2.0,也没有显示,这是有可以是因为我们的glib没有正确安装的缘故。我们在其通常位置/usr/include没有发现相关的头文件。判断是因为没有安装glib导致的。使用apt-cache search glib,发现一大堆东西,有关的包为libglib2.0-dev - Development files for the GLib library 以及libglib2.0-doc - Documentation files for the GLib library。我们下载并安装这两个包,使用sudo apt-get install libglib2.0-dev libglib2.0-doc,下载这两个包。安装后,执行pkg-config --variable=prefix glib-2.0,显示/usr,查找/usr/include,有glib-2.0/的头文件。
二、下载clutter包
在clutter社区中下载最新的clutter包,目前仍然没有正是的release版本,这对于使用clutter开发必须加以考虑。下载命令为git clone git://git.clutter-project.org/clutter,同样我们导入clutter-box2d和clutter-cairo。
三、安装clutter包
问题一:进入clutter目录,执行 ./autogen.sh --prefix=$PREFIX,『这是$PREFIX可以使用/usr,但是后面的make中也需要PREFIX的参数,所以还export他的值。』报错:configure: error: Required backend X11 Libraries not found.因此我们需要继续安装X11相关的库。和安装glib类型的方法,我们选择安装了libx11-dev和libx11-data两个包。但是仍然报同样的错误。下载libxdamage-dev开发包,还不起作用(这个包看是需要的,问题三,只是不解决当前的问题),然后在软件包管理器中安装了x11-protocol- perl和libgtk1.2,一共8个包(选择gtk的时候,会同时安装几个包),报同样的错。所以到clutter社区那里查看答案,需要安装 libxcomposite-dev,我加安装了libxcomposite1,安装这两个包后,可以通过。
问题二:报configure: error: Unable to locate required GL headers,需要安装libgle3-dev解决。
问题三:出现新的报错:
checking for CLUTTER_DEPS... configure: error: Package requirements (cairo >= 1.4 pangocairo >= 1.18 gobject-2.0 >= 2.16 gthread-2.0 gmodule-no-export-2.0 x11 xfixes xdamage xcomposite xi x11 xfixes xdamage xcomposite gdk-pixbuf-2.0) were not met:
No package 'cairo' found
No package 'pangocairo' found
No package 'gdk-pixbuf-2.0' found
我们安装libcairo2-dev和libcairo2-doc,libgdk-pixbuf-dev(这个不解决问题),libpango1.0- dev和doc,我们还安装了libgdk-pixbuf2以为可以解决问题,可惜很遗憾,最后是在桌面的软件包管理器中安装libgtk2,问题才得以解决。
根据文档的step by step,下一步我们进行make,发现已经生成了Makefile文件,进行后,为了将代码放入$PREFIX路径,需要sudo make install,这样就操作完,然后我们对box2d进行同样的操作,没有问题,接着对cairo也进行同样的操作,在编译example的时候出现问题,我们将example/bubble.c的145行中的clutter_clone_texture_new函数改为clutter_clone_new就可以了。有一些执行文件可以show些图形给我们看看。
最近我想学习以下clutter,想更新最新的版本,所有重新git来一次,但是我发现,可能clutter,clutter-box2d这些可能是由不同的工作小组维护的,他们之间出现来版本兼容的问题。不过我们在ubuntu或者fadora,都可以使用adp-get或者yum下载相关的软件开发包。虽然不是最新的,但是不会有兼容性的问题。2009.7.20