GTK+开发环境搭建

GTK+开发环境搭建ubuntu

“工欲善其事,必先利其器”首先介绍一下GTK+开发环境的搭建,网上不少所谓的GTK的开发环境的搭建基本都是抄来抄去,也不知道有没有人使用他们介绍的方法搭建并编译成功,很不幸的是我使用他们写的方法没有搭建成功,因此有必要再增长一个原创版原本介绍GTK+开发环境的搭建,这里介绍windows下两种环境搭建的方法,ubuntu的我就不说了,apt-get的功能真是太强大,直接sudo apt-get install gtk+2.0就搞定了,使用gcc编译添加编译条件就没问题了.如今说说windows吧!第一种是使用VS开发环境,我打算基于VS2012来说解,个人电脑里装的是2012;另外一种是使用codeblocks开发工具.windows

准备步骤一:svg

首先是gtk+开发包版本的选择,这个很是重要,我在搭建的时候参考了很是多的资料,官方的资料、我的的心得,怎么都没有成功,最后偶然的机会发现是版本的问题。gtk+的官网上windows下的开发包分红32bit和64bit的,工具

wps_clip_image-25902

网上我看到的文章说的都是根据本身的系统选择开发包版本,个人系统是windows 8.1 x64 pro版本,足够新了吧!不少软件开发人员喜欢xp系统,可是我认为最新的东西才是适合软件开发人员的,若是咱们本身都固步自封,怎么作出好的东西给客户呢,新的东西虽然冒险,可是你能够根据本身项目的特色进行取舍,如今你们不喜欢用新东西的缘由无非是出了问题没法很容易的找到解决方案,这个看本身了!我这是本身折腾着玩,没有老板在后面催着,因此我选择最新的系统、最新的开发包。不管是你的系统是32bit仍是64bit的,不要根据系统选择开发包,要根据编译器是32bit仍是64bit来选择开发包,不管VS2012仍是codeblocks默认的编译器都是32bit的,因此选择32bit的开发包便可,因为gtk+是使用gcc编译的或者minGW,使用VS2012的MS编译器有点小问题,可是不影响使用。到www.gtk.org网站上下载gtk All-in-one bundle版本,这个版本打包了全部须要的文件,比较方便,我下载的是gtk+bundle_3.6.4-20130921_win32.zip和gtk+bundle_2.24.10-20120208_win32.zip是目前3.x和2.x最新的版本了。oop

wps_clip_image-27600

为何下载2.x的是给codeblocks准备的,codeblocks不支持直接建立3.x版本的开发环境,可是支持从2.x版本直接建立gtk+工程,开发工具

wps_clip_image-30983

这个稍后再讲。如今开始:网站

准备步骤二:ui

将下载的开发包压缩文件解压缩到一个文件夹内,在环境变量的path下将这个文件夹下的bin目录添加进去,spa

wps_clip_image-6715

这个目录是我试验64bit时的截图,不用纠结这个。.net

wps_clip_image-6023

添加完成以后,大家能够试着运行bin目录下的gtk3-demo.exe,若是配置没有错误将会出现GTK+ Code Demos的窗口,这就说明你的配置是没有错误的。

wps_clip_image-2716

准备工做完毕,如今能够开始了。

VS2012搭建GTK+开发环境

1.新建一个空的C++项目,Visual C++—常规—空项目

wps_clip_image-1890

2.右键项目—选择“属性”,打开属性设置。

wps_clip_image-2607

3.配置属性—C/C++—常规—附加包含目录—编辑

wps_clip_image-25815

4.添加新行

wps_clip_image-104

将开发包的include文件夹添加进去,

wps_clip_image-27916

须要添加的目录有:

include,及include下的全部文件夹(atk-1.0,cairo,fontconfig,freetype2,gail-3.0,gdk-pixbuf-2.0,gio-win32-2.0,glib-2.0,jasper,libcroco-0.6,libpng15,librsvg-2.0,libxml2,lzma,pango-1.0,pixman-1),和lib文件夹下的glib-2.0\include、libffi-3.0.12\include(千万不要忘记这两个文件)。很不幸的是这些文件夹只能一个一个的添加,不能批量添加。添加完成以后会像这样。

wps_clip_image-25413

5.配置属性—连接器—常规—附加库目录—编辑,将lib目录添加进去

wps_clip_image-25905

6.配置属性—连接器—输入—附加依赖项—编辑,将lib文件夹下则*.lib文件所有添加进去,个人lib目录下有:

atk-1.0.lib

cairo.lib

fontconfig.lib

gailutil.lib

gdk_pixbuf-2.0.lib

gdk-win32-3.0.lib

gio-2.0.lib

glib-2.0.lib

gmodule-2.0.lib

gobject-2.0.lib

gthread-2.0.lib

gtk-win32-3.0.lib

pango-1.0.lib

pangocairo-1.0.lib

pangoft2-1.0.lib

pangowin32-1.0.lib

wps_clip_image-5581

添加完成以后像这样:

wps_clip_image-16079

每行回车,后面没有“;”

7.新建一个main.cpp文件,在文件中输入

  1: #include <stdlib.h>
  2: #include <gtk/gtk.h>
  3: 
  4: static void helloWorld (GtkWidget *wid, GtkWidget *win)
  5: {
  6:   GtkWidget *dialog = NULL;
  7: 
  8:   dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
  9:   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
 10:   gtk_dialog_run (GTK_DIALOG (dialog));
 11:   gtk_widget_destroy (dialog);
 12: }
 13: 
 14: int main (int argc, char *argv[])
 15: {
 16:   GtkWidget *button = NULL;
 17:   GtkWidget *win = NULL;
 18:   GtkWidget *vbox = NULL;
 19: 
 20:   /* Initialize GTK+ */
 21:   g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
 22:   gtk_init (&argc, &argv);
 23:   g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
 24: 
 25:   /* Create the main window */
 26:   win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 27:   gtk_container_set_border_width (GTK_CONTAINER (win), 8);
 28:   gtk_window_set_title (GTK_WINDOW (win), "Hello World");
 29:   gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
 30:   gtk_widget_realize (win);
 31:   g_signal_connect (win, "destroy", gtk_main_quit, NULL);
 32: 
 33:   /* Create a vertical box with buttons */
 34:   vbox = gtk_vbox_new (TRUE, 6);
 35:   gtk_container_add (GTK_CONTAINER (win), vbox);
 36: 
 37:   button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
 38:   g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);
 39:   gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
 40: 
 41:   button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
 42:   g_signal_connect (button, "clicked", gtk_main_quit, NULL);
 43:   gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
 44: 
 45:   /* Enter the main loop */
 46:   gtk_widget_show_all (win);
 47:   gtk_main ();
 48:   return 0;
 49: }

而后运行,获得:

wps_clip_image-30778

到此一个可使用的VS的GTK+开发环境搭建完毕。这样的步骤本人一步步试验得来,应该没有错误。可放心使用,哈!

codeblocks下搭建GTK+开发环境

个人codeblocks是12.11版本,是目前最新的codeblocks版本,若是使用2.x版本的GTK+那么创建一个GTK+工程很容易。

1.选择GTK+ progect

wps_clip_image-16338

2.next—填写工程名字

能够随便填写

3.选择开发包的直接根目录

wps_clip_image-6642

若是出现上面的提示证实你使用的是3.x的开发包。出现上面错误是由于codeblocks的问题,你只须要从新指定一个指向2.x开发包的目录便可。

选择“next”,并点击“finsh”,至此一个新的GTK+工程就完成了。

若是你原来添加到环境变量path下的目录要更改为如今这个新目录了,不然会有错误提示。

相关文章
相关标签/搜索