• 在Win32下建立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~~~
  • 相关阅读:
    COGS2355 【HZOI2015】 有标号的DAG计数 II
    COGS2353 【HZOI2015】有标号的DAG计数 I
    COGS2259 异化多肽
    二项式定理
    Codeforces 528D Fuzzy Search
    技术文章阅读-华为WS331a产品管理页面存在CSRF漏洞
    技术文章阅读-天翼创维awifi路由器存在多处未授权访问漏洞
    技术文章阅读-红蓝对抗系列之浅谈蓝队反制红队的手法一二
    技术文章阅读-Solr ReplicationHandler漏洞浅析
    技术文章阅读-记一次edu站点从敏感信息泄露到getshell
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167635.html
Copyright © 2020-2023  润新知