GTK+開發環境搭建

jopen 12年前發布 | 79K 次閱讀 GTK+ GTK GUI開發框架

這里介紹windows下兩種環境搭建的方法,ubuntu的我就不說 了,apt-get的功能真是太強大,直接sudo apt-get install gtk+2.0就搞定了,使用gcc編譯添加編譯條件就沒問題了.現在說說windows吧!第一種是使用VS開發環境,我打算基于VS2012來講解, 我的電腦里裝的是2012;另一種是使用codeblocks開發工具.

準備步驟一:

首先是gtk+開發包版本的選擇,這個非常重要,我在搭建的時候參考了非常多的資料,官方的資料、個人的心得,怎么都沒有成功,最后偶然的機會發現是版本的問題。gtk+的官網上windows下的開發包分成32bit和64bit的,

GTK+開發環境搭建

網 上我看到的文章說的都是根據自己的系統選擇開發包版本,我的系統是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最新的版本了。

GTK+開發環境搭建

為什么下載2.x的是給codeblocks準備的,codeblocks不支持直接創建3.x版本的開發環境,但是支持從2.x版本直接創建gtk+工程,

GTK+開發環境搭建

這個稍后再講。現在開始:

準備步驟二:

將下載的開發包壓縮文件解壓縮到一個文件夾內,在環境變量的path下將這個文件夾下的bin目錄添加進去,

GTK+開發環境搭建

這個目錄是我試驗64bit時的截圖,不用糾結這個。

GTK+開發環境搭建

添加完成之后,你們可以試著運行bin目錄下的gtk3-demo.exe,如果配置沒有錯誤將會出現GTK+ Code Demos的窗口,這就說明你的配置是沒有錯誤的。

GTK+開發環境搭建

準備工作完畢,現在可以開始了。

VS2012搭建GTK+開發環境

1.新建一個空的C++項目,Visual C++—常規—空項目

GTK+開發環境搭建

2.右鍵項目—選擇“屬性”,打開屬性設置。

GTK+開發環境搭建

3.配置屬性—C/C++—常規—附加包含目錄—編輯

GTK+開發環境搭建

4.添加新行

GTK+開發環境搭建

將開發包的include文件夾添加進去,

GTK+開發環境搭建

需要添加的目錄有:

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(千萬不要忘記這兩個文件)。很不幸的是這些文件夾只能一個一個的添加,不能批量添加。添加完成之后會像這樣。

GTK+開發環境搭建

5.配置屬性—鏈接器—常規—附加庫目錄—編輯,將lib目錄添加進去

GTK+開發環境搭建

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

GTK+開發環境搭建

添加完成之后像這樣:

GTK+開發環境搭建

每行回車,后面沒有“;”

7.新建一個main.cpp文件,在文件中輸入

  1: #include 
     
  2: #include 
     
  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: }

然后運行,得到:

GTK+開發環境搭建

到此一個可以使用的VS的GTK+開發環境搭建完畢。這樣的步驟本人一步步試驗得來,應該沒有錯誤。可放心使用,哈!

codeblocks下搭建GTK+開發環境

我的codeblocks是12.11版本,是目前最新的codeblocks版本,如果使用2.x版本的GTK+那么建立一個GTK+工程很容易。

1.選擇GTK+ progect

GTK+開發環境搭建

2.next—填寫工程名字

可以隨便填寫

3.選擇開發包的直接根目錄

GTK+開發環境搭建

如果出現上面的提示證明你使用的是3.x的開發包。出現上面錯誤是因為codeblocks的問題,你只需要重新指定一個指向2.x開發包的目錄即可。

選擇“next”,并點擊“finsh”,至此一個新的GTK+工程就完成了。

如果你原來添加到環境變量path下的目錄要更改成現在這個新目錄了,否則會有錯誤提示。

來自:http://my.oschina.net/u/124452/blog/182264

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!