Windows下安装GTK+(整理)


以下为网上摘的,自己把它整理在了一起


WINDOWS下实现GTK+/GTKMM的编程

(一)、下载软件包

1、下载dev C++开发软件(我的版本是4.9.9.2)

2、下载GTK+

3、下载GTKMM(对于C++的朋友)

即是下面的三个文件

 

(二)、安装(全部默认安装)

1、先装dev c++

2、再装GTK+

3、再装GTKMM

 

(三)、环境变量设置(右键我的电脑,属性,高级)

1、在系统变量添加

变量:PKG_CONFIG_PATH

值:C:\GTK\lib\pkgconfig

保存退出。

2、打开命令行(开始,运行,CMD)

输入:pkg-config --version回车

看是否版本信息输出,如果有,说明系统变量设置正确,如果找不到该命令,就需要重启电脑。一般XP需要重启,WIN7不需要。

3、生成编译器、链接器信息(这部分只针对C++的朋友说的,C的配置也类似,不会的就留言给我)

命令行下依次输入以下命令,即可在C:\下生成cflags.txt、libs.txt

一般输入第一条命令时会出现下面的问题:(原因是依赖文件pixman-1.pc没找到)

解决办法:

修改文件:C:\GTK\lib\pkgconfig\cairo.pc,去掉pixman-1>...的内容,保存后再试,即可

 

(四)、配置dev c++

打开 dev c++

新建C++工程,如下图

右键test,打开project options

选择parameters,然后打开之前产生的cflags.txt,复制内容至C++ complier

打开libs.txt,复制内容至Linker.最终结果如下图:

此时所有配置完成!

测试代码,自行完成。

原文链接



一:


GTK 简介 
GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL许可证,所以可以用它来开发开源软件、自由软件,甚至是封闭源代码的商业软件,而不用花费任何费用来购买许可证和使用权。当前,GTK 已经被成功地应用到 了大量的自由软件及商业软件中,已经取得了很大的成功。
GTK是跨平台的,它能够运行于Linux/Unix/Windows/MacOS及嵌入式系统

下面就来介绍一下在Windows一搭建GTK开发环境。
首先需要先安装C/C++开发环境,GTK支持Cygwin、MSYS、Dec-Cpp、MSVC这几种。这里偶用的是Dev-Cpp。在前一篇文章《在Windows下安装gcc》(http://www.xefan.cn/archives/83446.html)介绍了Dev-Cpp的安装。

下载、安装GTK
下载地址:http://gladewin32.sourceforge.net/
由于我们是用于开发,所以就选择下载Gtk+ 2.12.9 Development Environment Revision 2这个。下载完后安装gtk-dev-2.12.9-win32-2.exe,安装过程全部按照默然的就可以了,留意一下的是选择IDE的时候确定一下是Dev-Cpp就可以了。安装完毕后系统环境变量和Dev-Cpp的目录设置应该都已经设置好了。
1、查看系统环境变量:右键单击“我的电脑”–>“属性”–>“高级”–>“环境变量”–>“系统变量”,可以看到Path增加了“%GTK_BASEPATH%bin”。
2、查看Dev-Cpp的目录设置:“工具”–>“编译器选项”–>“目录”,选择“库”可以看到“C:GTKbin”;选择“C包含文件”可以看到“C:GTKINCLUDE”……

接下来我们进行测试一下,打开 Dev-C++,建立一个新的工程,添加一个新文件:

  • #include <gtk/gtk.h>
    int main(int argc, char *argv[])
    {
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), “Hello World”);
    gtk_widget_show(window);
    gtk_main();
    return 0 ;
    }

这个时候还不能编译,需要修改工程属性,在”工程->工程属性->参数” 或 “工具->编译选项”中的链接器框里面填入:

  • -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

在编译选项里面填入:

  • -mms-bitfields

就可以编译通过了。

在运行以后,你会发现出现一个空白窗口,标题为 Hello World。

原文链接


二:


[url]http://www.gtk.org/download.html[/url]可以找到Windows(32-bit)和64-bit的版本下载,按照自己的系统是32位还是64位选择相应的版本,页面中的GTK+ individual packages是GTK+运行所必须的库,Third Party Dependencies是第三方依赖库。这样我们就能够根据需要下载相应的库文件,能够使GTK+库最小化。如果想要简单的话,页面上也提供了一个bundle包,这是将所有库打包在一起的,可以下载这个使用。注意,bundle包并没有单列出来,而是在页面正文中给出的链接,可能需要小心找找。

 

这里我们下载bundle包,解压缩之后,可以将里面的bin文件夹添加到环境变量path里面,以便我们编译出的exe文件运行时可以找到那些dll。否则的话需要将这些dll复制到和exe同一目录下。还可以将bin里面的这些dll全部复制到C:\WINDOWS\system32文件夹下,因为即使将这些添加到系统环境变量,在IDE里面运行也是找不到dll的,复制到system32文件夹下就可以了。

 

下面使用VC6来配置编译环境。

 

首先在VC6的Tools-Options下面的Directories选择Include files,添加GTK+目录下的include文件夹以及里面的所有一级子目录,然后添加lib文件夹下的子目录中的include文件夹,这样的话一共是添加10个目录:

GTK+学习:搭建环境 - shenze60 - linux博客

 

然后在Library files里面添加GTK+目录下的lib文件夹:

GTK+学习:搭建环境 - shenze60 - linux博客

 

这样之后VC6就已经配置好了,VS2008之类的也类似配置。下面新建一个控制台工程(VC6)或者是空工程(VS2008),打开工程的settings,在link选项卡下清空里面原有的Object/library modules,然后添加glib-2.0.lib gtk-win32-2.0.lib gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib gmodule-2.0.lib pango-1.0.lib intl.lib 几个,确定即可。这里使用的是VC6,VS2008里面也有类似的设置。

 

这样设置之后可以新建一个main.c文件,然后输入:

 

#include <gtk/gtk.h>

 

int main(int argc, char** argv)

{

        GtkWidget* window;

        gtk_init(&argc, &argv);

        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

        g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

        gtk_widget_show(window);

        gtk_main();

        return 0;

}

 

编译、链接、运行,有窗口出现,说明环境配置成功:

GTK+学习:搭建环境 - shenze60 - linux博客

原文链接

 


三:在windows 7下为VS安装和配置Gtkmm


为了能在VS中使用Gtk+库,今天忙乎了一下午,走了弯路,把Gtk+库加到VS2010我实在是弄不出来。最后还是选择VS2008了,结果成功了。现在分享下我是怎么给VS2008加入Gtk+库的。为什么想在VS中使用Gtk+就不多说了,个人爱好问题。

那为什么选择Gtkmm而不选择Gtk+呢?这个应该都知道,Gtkmm是封装好了类,支持C++,同样也支持C。

步骤:

1.先下载Gtkmm安装包,下载地址。安装好Gtkmm(怎么安装不说了,一键式的安装);

2.打开VS2008,新建一个控制台项目,我建的项目是gtk_test,保存在文件夹:E:\vc++2008\gtk_test

如下图:

1

3.项目建好后,打开属性管理器,找不到属性管理器在哪?打开路径如下图:

2

4.下面进入安装Gtkmm的文件夹,我安装在C盘:C:\gtkmm\MSVC  ,进入MSVC文件夹,把下面两个文件复制到工程目录下:E:\vc++2008\gtk_test\gtk_test  下。

3

5.进入属性管理器,右键“Debug|Win32”,选择“添加现有属性表”

4

再选择刚才赋值的文件“gtkmm-vc90-d-2_4”。再右键“Release|Win32”,同上面一样,但选择文件“gtkmm-vc90-2_4”。

6.好了,基本完成了,现在来修改stdafx.h文件:

如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
gtk_test.cpp// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
//
 
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <gtkmm.h>
 
 
 
// TODO: 在此处引用程序需要的其他头文件

修改gtk_test.cpp文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// gtk_test.cpp : 定义控制台应用程序的入口点。
//
 
#include "stdafx.h"
 
 
intmain(intargc,char* argv[])
{
  Gtk::Main kit(argc, argv);
 
  Gtk::Window window;
 
  Gtk::Main::run(window);
 
  returnEXIT_SUCCESS;
}

5.现在如果编译已经可以执行了,可能由于VS2008的一个bug,debug版本会跳出

image 这个问题这里不解释(解决办法去谷歌上搜吧)。

执行编译release版,如下图,但是在Gtk窗口后面有个控制台窗口。

image

6.如何去掉后面的控制台呢?建议debug版保留这个控制台窗口。去掉控制台方法如下:

右键“gtk_test”,进入属性设置

image

进入属性设置窗口,修改:链接器->系统->子系统设为Windows(/SUBSYSTEM:WINDOWS)

 image

再修改:链接器->高级->入口点设为mainCRTStartup

image

再次建议只修改release的配置。

7.运行结果如下:

image

关于gtkmm库的使用可以点此进入

如果你想学习Gtk+编程的话可以点此进入

其他的不多说了,我是初学者,在这只是分享下我知道的。接下来我就要开始学习Gkt了。

原文链接



四: 

Windows + Eclipse + Gtk 环境


一、安装MinGW
二、GTK

   Gtk是图形界面库,GladeGtk界面的快速开发工具。可以使用Glade_with_Gtk+一体化安装包。地址:

   http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/

   本文将Gtk+安装在D盘根目录下。安装正确后在Windowscmd窗口中分别运行pkg-config --cflags gtk+-2.0pkg-config --libs gtk+-2.0后会有如下显示:

   (1)>pkg-config --cflags gtk+-2.0

  -mms-bitfields -Id:/Gtk+/include/gtk-2.0 -Id:/Gtk+/lib/gtk-2.0/include -Id:/Gtk+/include/atk-1.0 

  -Id:/Gtk+/include/cairo -Id:/Gtk+/include/pango-1.0 -Id:/Gtk+/include/glib-2.0 -Id:/Gtk+/lib/glib-2.0/include 

  -Id:/Gtk+/include/libpng12

   (2)>pkg-config --libs gtk+-2.0
   -Ld:/Gtk+/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 

   -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl

三.创建工程

  新建project new->c project,project type 选择Hello world ANSI c project,然后按如下步骤配置:

   在project->properties->c/c++ build 下 setting : 

  (1)gcc complier->dirctories->include paths (-I) 中一项项添加命令的结果‘pkg-config --cflags gtk+-2.0’,即添加头文件路径

      即一项项添加

d:/Gtk+/include/gtk-2.0 
d:/Gtk+/lib/gtk-2.0/include 
d:/Gtk+/include/atk-1.0 
d:/Gtk+/include/cairo 
d:/Gtk+/include/pango-1.0 
d:/Gtk+/include/glib-2.0 
d:/Gtk+/lib/glib-2.0/include 
d:/Gtk+/include/libpng12 


  (2)对于linker:

    GCC C linker -> libraries中添加命令'pkg-config --libs gtk+-2.0'执行结果

      即一项项添加

gtk-win32-2.0 
gdk-win32-2.0 
atk-1.0 
gio-2.0 
gdk_pixbuf-2.0 
pangowin32-1.0 
gdi32 
pangocairo-1.0 
pango-1.0 
cairo 
gobject-2.0 
gmodule-2.0 
glib-2.0 
intl

   

   另外还需加入库的搜索路径d:/Gtk+/lib


三.GTK程序Hello_world示例

#include<gtk/gtk.h>


/*定义回调函数hello,点击按钮时被系统自动调用*/
void hello(GtkWidget *widget,gpointer *data)
{
g_print("button clicked and data = %s\n",(char *)data);
}


/*定义回调函数destroy,关闭窗口时被系统自动调用*/
void destroy(GtkWidget *widget,gpointer *data)
{
gtk_main_quit();
}


int main(int argc,char **argv)
{
/*定义指向控件的指针*/
GtkWidget *window;
GtkWidget *button;


/*初始化图形显示环境*/
gtk_init(&argc,&argv);


/*创建窗口,并设置当关闭窗口时,要执行的回调函数*/
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window),"destroy",
GTK_SIGNAL_FUNC(destroy),NULL);
        /*设置窗口的属性*/
gtk_container_border_width(GTK_CONTAINER(window),20);


/*创建按钮,并设置当点击按钮时,要执行的回调函数*/
button = gtk_button_new_with_label("Hello World");
g_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(hello),"I am from button");


/*将按钮加入到窗口中*/
gtk_container_add(GTK_CONTAINER(window),button);
/*显示按钮和窗口*/
gtk_widget_show(button);
gtk_widget_show(window);


/*进入消息处理循环*/
gtk_main();


return 0;
}

原文链接


五:windows下GTK+和cairo开发环境配置;VS2008;GTK+;cairo;


  1. http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.12/gtk+-bundle-2.12.11.zip下载all in one包,里面包含了运行时dll 和 开发包。
  2. 本地新建C:\GTK+目录,解压包到这个目录
  3. 把C:\GTK+\bin加入到系统路径中
  4. 打开cmd,运行pkg-config --cflags gtk+-2.0
  5. 运行gtk-demo,检查是否正常运行
  6. 有可能需要cygX11-6.dll,这个文件是cygwin的X11实现。请检查C:\cygwin\usr\X11R6\bin下是否存在该文件,如果存在,把路径添加到系统路径
  7. 如果需要使用MS-Windows主题, 创建etc/gtk-2.0/gtkrc,内容为gtk-theme-name = "MS-Windows"
  8. 新建VC++ 2008工程,添加C:\GTK+\include到include路径中
  9. 把C:\GTK+\lib添加到lib路径中,添加依赖库cairo.lib
  10. 就可以写cairo程序了

image 
上图为cairo输出到png的样例。

源程序如下:

void export2png()
{
    cairo_surface_t *surface;
    cairo_t *cr;

    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 390, 60);
    cr = cairo_create(surface);

    cairo_set_source_rgb(cr, 0, 0, 0);
    cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL,
      CAIRO_FONT_WEIGHT_NORMAL);
    cairo_set_font_size(cr, 40.0);

    cairo_move_to(cr, 10.0, 50.0);
    cairo_show_text(cr, "Disziplin ist Macht.");

    cairo_surface_write_to_png(surface, "image.png");

    cairo_destroy(cr);
    cairo_surface_destroy(surface);
    return;
}

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值