Ich bekomme Fehler beim Kompilieren einer GTK + -Anwendung, die besagt, dass ich nicht deklarierte Funktionen/Definitionen habe (ich glaube GTK_OBJECT könnte eine Definition in einer Header-Datei sein). Dies ist mein Code (main.c):Nicht deklarierte GTK_OBJECT während g ++ Kompilierung
#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;
}
ich den folgenden Befehl in bash bin mit:
g++ `pkg-config --libs --cflags gtk+-3.0` main.c -o binary
Ich habe tun, um die Entwicklerversion von GTK + 3.0 installiert. Jede Hilfe wird sehr geschätzt.
Edit: Dies ist die Fehlermeldung erhalte ich:
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;
^
Bitte kopieren Sie den Fehler fügen Sie bekommen, so können wir die gleiche Sache, die Sie sehen. – nos
Fertig. Ich habe es meinem Beitrag hinzugefügt. – Pelle
'GTK_OBJECT()' und 'GTK_SIGNAL_FUNC()' sind GTK + 2. Sie kompilieren mit GTK + 3. Welche wollen Sie verwenden, 2 oder 3? – andlabs