在Win32下建立GTK开发环境
转载时请注明出处和作者联系方式 作者联系方式:李先静 <xianjimli at hotmail dot com>
这几天在写一个生产下载工具,产线上的工人习惯用Win32下的图形用户界面工具,自然要满足这个要求才行。但我也不想再去回忆N年没有用过的 MFC了,所以决定用GTK开发,然后移植到Windows下。安装完整cygwin有点大,我只想建立一个最小开发/运行环境,这还真有点麻烦,特别是 国际化的处理,这里记个笔记供大家参考吧。
安装
- 下载MinGW,默认安装到C:\MinGW下。如果make命令没有安装,手工解压make.zip,然后拷贝到C:\MinGW\bin中。
- 把C:\MinGW\bin加入到环境变量path中。运行一下gcc,如果能找到这个命令就OK了。
- 下载gtk+-bundle-2.12.10,并解压到一个目录。我这里是C:\win-gtk。
- 把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;
}
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,一切正常。
~~~end~~~
发表于 @ 2008年07月04日 21:56:00|评论(loading...)|编辑|收藏