在Win32下建立GTK开发环境

本文介绍如何在Win32环境下搭建GTK图形界面开发环境,包括安装MinGW、配置环境变量、安装GTK+ Bundle及创建简单GTK应用程序的过程。
在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~~~
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值