在win32下寫gtk程式
2002-12-16
首先到 GTK+ and GIMP for Windows裡的 download 頁面下載
GNU libiconv for Win32
進入後選 libiconv-xxxx-win32-x.bin.zip,x 是版本編號,選最新的就好。
libintl-0.10.40-tml-20020904.zip
gettext-dev-0.10.40-20020904.zip
glib-2.0.7-20021201.zip
glib-dev-2.0.7-20021201.zip
pkgconfig-0.14.zip
gtk+-1.3.0-20020922.zip
gtk+-dev-1.3.0-20020912.zip
這些東西有可能會改版,所以連結僅供參考,直接到 GTK+ and GIMP for Windows 的站比較好。
(其實也不太可能啦,GTK+-2.0 都出了,只維護新版的可能比較大,這些應該不會有啥變動。)
中正大學資工1A 張孝銘
GNU libiconv for Win32
進入後選 libiconv-xxxx-win32-x.bin.zip,x 是版本編號,選最新的就好。
libintl-0.10.40-tml-20020904.zip
gettext-dev-0.10.40-20020904.zip
glib-2.0.7-20021201.zip
glib-dev-2.0.7-20021201.zip
pkgconfig-0.14.zip
gtk+-1.3.0-20020922.zip
gtk+-dev-1.3.0-20020912.zip
這些東西有可能會改版,所以連結僅供參考,直接到 GTK+ and GIMP for Windows 的站比較好。
(其實也不太可能啦,GTK+-2.0 都出了,只維護新版的可能比較大,這些應該不會有啥變動。)
首先造個目錄,假設是 "c:\gnu" ,這可以自己定。壓縮檔解開後可以看到一些 bin lib share include 等等的目錄。
全部直接放到 "c:\gnu" 下。然後把 lib 目錄下的所有 .dll 放到 windows 目錄下。
啟動 Microsoft Visual C++ 到 Tools->Options->Directories,
從 show directoies for 選 Include files,在下面的 directoies 裡加入 "c:\gnu\include"。
再選 Library files,加入 "c:\gnu\lib"。
另外在 "c:\gnu\lib\" 下的 gtk+, glib-2.0 目錄下,
把 include 裡的 gdkconfig.h glibconfig.h 放到 "c:\gnu\include\" 下。
這樣就完成基本的設定啦。
現在來試試吧,
先開個 Win32 Console Application 專案。點選 Project->Setting->Link,在 Category 選 General,
在 Object/library modules 加入 gtk.lib gdk.lib glib-2.0.lib intl.lib iconv.lib。
先來個簡單的程式
#include <gtk/gtk.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
GtkWidget *win, *label;
gtk_set_locale();
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(win), 200, 100);
gtk_window_set_title(GTK_WINDOW(win), "Test");
gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_exit), NULL);
label=gtk_label_new("Hello, GTK+\n");
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(label));
gtk_widget_show_all(win);
gtk_main();
return 0;
}
gtk_set_locale();
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(GTK_WIDGET(win), 200, 100);
gtk_window_set_title(GTK_WINDOW(win), "Test");
gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(gtk_exit), NULL);
label=gtk_label_new("Hello, GTK+\n");
gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(label));
gtk_widget_show_all(win);
gtk_main();
return 0;
如果一切順利,就可以在 Win32 上用 VC++ 寫 GTK+ 程式了。

中正大學資工1A 張孝銘
