absurd的专栏

欢迎大家加入Linux Mobile Research,本圈子主要致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计方法和软件优化等方面,欢迎大家加入,无论是高手还是新手,一起学习共同进步。

李先静ID:absurd
971273次访问,排名25好友130人,关注者135
Only those who attempt the absurd can achieve the impossible.
absurd的文章
原创 368 篇
翻译 1 篇
转载 55 篇
评论 1494 篇
李先静的公告
Broncho linux手机平台是构建在linux 2.6 之上,采用GTK+作为GUI的手机平台。欢迎大家到broncho.cn上交流,网站还在建设之中,近期我们会陆续把整理好的文档和代码更新到上去。
最近评论
shijie1983:雅虎管理咨询
网络营销
特价机票
杭州特价机票
杭州打折机票
杭州机票
杭州化妆培训
shijie1983:杭州特价机票
杭州打折机票
杭州机票
杭州化妆培训
unailbobo:谢谢
unailbobo:关于1,我查看源码没有看到gdk_events_init里有关于mainloop的任何代码???
文章分类
收藏
相册
1.个人相册
2.设计备忘录用图
3.设计本质论用图
4.scim架构用图
6.临时文件
7.其它文件
8.研究笔记用图
marvell-linux
1.友情链接
aimself@CSDN(RSS)
directfb中文网站(RSS)
Eric's Little Hut
eye_of_back的专栏(RSS)
Linux Mobile Research
Phoenix@上海(RSS)
segments的专栏(RSS)
study's Blog(RSS)
tracestudio
伐木丁丁鸟鸣嘤嘤(RSS)
会飞的鱼的专栏(RSS)
创系的技术博客
小四的BLOG(RSS)
小马哥的博客(RSS)
开源电信(RSS)
御风剑客
新奇的BLOG
易军军的网络家
李吉群的专栏(RSS)
2.亲情链接
凤凰的幸福蓄水池(RSS)
我的相册
3.软界高手
Donald E. Knuth (RSS)
孟岩(RSS)
透明(RSS)
4.LinuxMobile
celinuxforum(RSS)
GPE(RSS)
maemo.org(RSS)
opensource.motorola
palowireless
5.XWindow
Jserv's blog(RSS)
Keith Packard(RSS)
6.技术资源
7.开源项目
freedesktop(RSS)
GNU(RSS)
GTK+(RSS)
matchbox(RSS)
pxa27x-linux/
8.我的BLOG镜像
absurd@chinaunix
absurd@msn
My English BLOG(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky

原创 在Win32下建立GTK开发环境收藏

新一篇: GTK+/DFB优化 | 旧一篇: DirectFB运行机制介绍

在Win32下建立GTK开发环境
转载时请注明出处和作者联系方式 作者联系方式:李先静 <xianjimli at hotmail dot com>

这几天在写一个生产下载工具,产线上的工人习惯用Win32下的图形用户界面工具,自然要满足这个要求才行。但我也不想再去回忆N年没有用过的 MFC了,所以决定用GTK开发,然后移植到Windows下。安装完整cygwin有点大,我只想建立一个最小开发/运行环境,这还真有点麻烦,特别是 国际化的处理,这里记个笔记供大家参考吧。

安装

  1. 下载MinGW,默认安装到C:\MinGW下。如果make命令没有安装,手工解压make.zip,然后拷贝到C:\MinGW\bin中。
  2. 把C:\MinGW\bin加入到环境变量path中。运行一下gcc,如果能找到这个命令就OK了。
  3. 下载gtk+-bundle-2.12.10,并解压到一个目录。我这里是C:\win-gtk。
  4. 把C:\win-gtk\bin加入到环境变量path中。运行一下pkg-config,如果能找到这个命令就OK了。

建立工程

  • 建立一个工作目录用于存放GTK工程,我这里是C:\work。
  • 在工作目录里建一个hello目录,写个简单的GTK程序main.c
#include <gtk/gtk.h>



#ifdef ENABLE_NLS

#define _(String) dgettext (GETTEXT_PACKAGE, String)

#include <libintl.h>

#else

#define _(String) String

#endif



int

main (int argc, char *argv[])

{



#ifdef ENABLE_NLS

  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);

  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");

  textdomain (GETTEXT_PACKAGE);

#endif



  gtk_set_locale ();

  gtk_init (&argc, &argv);



  GtkWidget* main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  gtk_window_set_title (GTK_WINDOW (main_window), _("Hello, GTK!"));

  GtkWidget* label1 = gtk_label_new (_("<b>Hello, GTK!</b>"));

  gtk_widget_show (label1);

  gtk_container_add (GTK_CONTAINER (main_window), label1);

  gtk_label_set_use_markup (GTK_LABEL (label1), TRUE);



  gtk_widget_show (main_window);



  gtk_main ();



  return 0;

}



  • 再写个Makefile
GTK_FLAGS=$(shell pkg-config --libs --cflags "gtk+-2.0")

LOCALE_FLAGS=-DGETTEXT_PACKAGE="\"hellogtk\"" -DPACKAGE_LOCALE_DIR="\"./locale\"" -DENABLE_NLS 

all: 

	gcc main.c -o hellogtk $(GTK_FLAGS) $(LOCALE_FLAGS)



clean:

	del *.o *.exe



  • 修改一下C:\win-gtk\lib\pkgconfig\gtk+-2.0.pc, 在cflags中增加-I${includedir},否则找不到libintl.h。
  • 生成hellogtk.mo(可以参考),放到./locale/
  • 编译make,运行hellogtk.exe,一切正常。 win32gtk
~~~end~~~

发表于 @ 2008年07月04日 21:56:00|评论(loading...)|编辑|收藏

新一篇: GTK+/DFB优化 | 旧一篇: DirectFB运行机制介绍

评论

#wxmtwfx 发表于2008-07-10 15:33:49  IP: 124.226.192.*
为什么不用gtk-win32-devel-2.6.8-rc1加devcpp-4.9.9.2_setup?
2008-07-18 21:28:09作者回复
呵,只是喜欢轻量级一点。
#ivy_young 发表于2008-07-13 16:25:42  IP: 218.8.50.*
^_^
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 李先静