转载请注明出处 blog.csdn.net/pingf0 或 www.cnblogs.com/pingf
clutter是个很不错的库,也正因为有了它,Intel的moblin才显得有点光彩【个人愚见,吼吼】
官方并没有给出很详尽的在win32下使用clutter的方法,毕竟要推moblin嘛。。。XD,仿佛在说我用linux我骄傲一般。
但还是有些喜欢hacking的老外爱想点法子,将它移植到了了win32平台上。
下面的文章,除了做点翻译之外,还有一些自己的总结,使之更为易懂易用
STEP 1
基本配置,我对微软似乎是有些反感的,所以本文只讲基于mingw的方法,而不提msvc的。。。。。。吼吼
首先要做的就是将mingw装上【需要额外装下libiconv,需要调试肯定要装高蛋白(GDB)的】,还有glib相关的一些库,什么gio 啦,gobject啦。。。。。太多,太碎,怕麻烦的可以直接状glade套件或者gtk+的all in one bundle!
所有这些都可从sourceforge.net下载
当然要下载clutter的源码包【本文介绍的适用于1.0.X各个版本,也是目前(09.10.26)最稳定版本】,可从clutter-project.org下载
顺带把qt套件给装上,主要是用到那个qmake,比automake用起来方便不少。[这个从nokia网站下载]
STEP 2
将MINGW中include\GL下glext.h更换为http://www.opengl.org/registry/api/glext.h ,据说是因为自带的太旧的原因。
STEP 3
在说下面之前说明下我装的是glade套件,对应目录C:\GTK+,所以下面的一些修改也是针对此的
下载如下7zip包
https://files.cnblogs.com/pingf/prebuild.7z
然后将该prebuild文件夹放在clutter源码包build目录下,并修改configure.pl中
local $GLIB_DIR = Cwd::realpath("$HOME_DIR/glib-2.18.4");一行修改为
local $GLIB_DIR = Cwd::realpath("C:/GTK+");
然后运行那个批处理,运行完后看提示,要修改pro文件中
..\..\clutter\cogl\gl\cogl-primitives.c \
以及
..\..\clutter\cogl\gl\cogl.c \
两行前面各加个#号
并将pro文件中
CAIRO_DIR = ..\..\..\cairo_1.8.6
GLIB_DIR = ..\..\..\glib-2.18.4
CLUTTER_DIR = ..\..
PANGO_DIR = ..\..\..\pango-1.22.4
GETTEXT_DIR = ..\..\..\mingw32-gettext-0.17
修改为
CAIRO_DIR = C:\GTK+
GLIB_DIR = C:\GTK+
CLUTTER_DIR = ..\..
PANGO_DIR = C:\GTK+
GETTEXT_DIR = C:\GTK+
然后cmd下【当前目录】先qmake 再 make
然后就会产生libclutter.a文件啦,这个是静态的哟!
step 4
整理下.h文件【这步我就不说了】,
为了省事儿
我将编译的头文件放在C:\Gtk+\lib\clutter-1.0
将整理的头文件放在C:\Gtk+\include\clutter-1.0
step 5
然后就是运行你的程序了
gcc怎么用我是不会在此赘述的,但很有必要说一下一些标志为的设置
cflags设置为
-g -Wall -Ic:\gtk+\include\glib-2.0 -Ic:\gtk+\lib\glib-2.0\include -Ic:\gtk+\include
-Ic:\gtk+\include\cairo -Ic:\gtk+\include\pango-1.0
-Ic:\gtk+\include\clutter-1.0 -Ic:\gtk+\include\clutter-1.0\clutter
libs 设置为
c:\gtk+\lib\clutter-1.0\libclutter.a c:\gtk+\lib\glib-2.0.lib c:\gtk+\lib\gobject-2.0.libc:\gtk+\lib\gmodule-2.0.lib c:\gtk+\lib\gthread-2.0.lib c:\gtk+\lib\pango-1.0.libc:\gtk+\lib\pangocairo-1.0.lib c:\gtk+\lib\cairo.lib c:\gtk+\lib\libintl.dll.a-lopengl32 -lglu32 -lgdi32 -luser32 -lwinmm
连接附加选项
-mwindows -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl, -mthreads -Wl
step 6
下面给出经典的clutter下开罗花的程序
o(∩_∩)o...哈哈,至此在win下也可以用clutter进行开发啦!!!