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下的目錄要更改爲如今這個新目錄了,不然會有錯誤提示。

相關文章
相關標籤/搜索