在 g++ 编译期间未声明 [​​=10=]

Undeclared GTK_OBJECT during g++ compilation

我在编译 GTK+ 应用程序时遇到错误,说我未声明 [​​=22=](我相信 GTK_OBJECT 可能是头文件中的定义)。这是我的代码 (main.c):

    #include <gtk/gtk.h>

static gint delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data);

int main(int argc, char *argv[]) {
    //Create widgets
    GtkWidget *window;

    gtk_init(&argc, &argv); 

    //Initialize widgets
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    //Configure widgets
    gtk_window_set_title(GTK_WINDOW(window), "Hello World");

    //Display widgets
    gtk_widget_show(window);

    //Set up signals
    gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event_cb), NULL);

    gtk_main();
    return 0;
}

static gint delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data) {
    gtk_main_quit();
    turn FALSE;
}

我在 bash 中使用以下命令:

g++ `pkg-config --libs --cflags gtk+-3.0` main.c -o binary

我确实安装了 gtk+ 3.0 的开发者版本。非常感谢任何帮助。

编辑:这是我收到的错误消息:

main.c: In function ‘int main(int, char**)’:
main.c:21:41: error: ‘GTK_OBJECT’ was not declared in this scope
     gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event_cb), NULL);
                                         ^
main.c:21:91: error: ‘GTK_SIGNAL_FUNC’ was not declared in this scope
     gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event_cb), NULL);
                                                                                           ^
main.c:21:98: error: ‘gtk_signal_connect’ was not declared in this scope
     gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(delete_event_cb), NULL);
                                                                                                  ^
In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0,
                 from /usr/include/glib-2.0/glib/gtypes.h:32,
                 from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
                 from /usr/include/gtk-3.0/gdk/gdk.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from main.c:1:
main.c: In function ‘gint delete_event_cb(GtkWidget*, GdkEventAny*, gpointer)’:
/usr/include/glib-2.0/glib/gmacros.h:229:17: error: ‘turn’ was not declared in this scope
 #define FALSE (0)
                 ^
main.c:29:10: note: in expansion of macro ‘FALSE’
     turn FALSE;
          ^

我自己解决了,但是很难找到方法。我给了 g++ 错误的参数顺序并且也错过了一个参数。这是对我有用的 bash 命令:

g++ `pkg-config --libs --cflags gtk+-3.0` main.c -o binary `pkg-config --libs gtk+-3.0`