|
#include <gtk/gtk.h>
gint destroyapp(GtkWidget *widget, gpointer gdata)
{
g_print("quitting--\n");
gtk_main_quit();
return (FALSE);
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv); //Initialize gtk
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //Create a window
//Call destroyapp() when the window gets a "delete_event" signal
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(destroyapp), NULL);
gtk_widget_show(window); //Make the window visible
gtk_main(); //This is the event loop in gtk
//Do not return until gtk_main_quit() is called
return 0;
}
[sihan@localhost pro02]$ gcc 02.c -o 02 -Wall -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED `pkg-config gtk+-2.0 --cflags --libs`
02.c: In function `main':
02.c:20: warning: implicit declaration of function `gtk_signal_connect'
/tmp/ccKyrEXn.o(.text+0x7d): In function `main':
: undefined reference to `gtk_signal_connect'
collect2: ld returned 1 exit status
还有这个函数也是这种问题:
[sihan@localhost pro03]$ make
gcc 03.c -o 03 -Wall -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED `pkg-config gtk+-2.0 --cflags --libs`
03.c: In function `main':
03.c:24: warning: implicit declaration of function `gtk_container_border_width'
/tmp/ccpHcZ5s.o(.text+0xc4): In function `main':
: undefined reference to `gtk_container_border_width'
collect2: ld returned 1 exit status
make: *** [03] Error 1
这是为什么?
(代码都是书上的)
而我把gtk_signal_connect()换成g_gtk_connect()就可以运行了.
g_signal_connect()和gtk_signal_connect有什么区别? |
|