मैं जीयूआई प्रोग्रामिंग के लिए नया हूँ। मैंने हाल ही में लिनक्स पर Gtk+3 संस्करण स्थापित किया है। लेकिन, जब मैंने निम्नलिखित कोड टाइप किया:

#include <gtk/gtk.h>
#include <stdio.h>
static int count = 0;
void button_clicked(GtkWidget *button, gpointer data)
{
printf(“%s pressed %d time(s) \n”, (char *) data, ++count);
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
button = gtk_button_new_with_label(“Hello World!”);
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (button_clicked),
“Button 1”);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main ();
return 0;
}

इस कोड को चलाने के लिए मैंने इस कमांड का इस्तेमाल किया: $gcc gtk1.c –o gtk1 pkg-config --cflags --libs gtk+-3.0

लेकिन मुझे इस तरह की त्रुटि थी

undefined reference to GTK_OBJECT;
undefined reference to GTK_SIGNAL_FUNC;
gtk
0
tulip 11 फरवरी 2019, 14:40

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा इसलिए है क्योंकि आपका कोड नमूना GTK+ 2 के पुराने संस्करण के लिए है। GTK_OBJECT को देर से GTK+ 2.x संस्करणों में बहिष्कृत कर दिया गया था, और अंत में GTK+ 3 में हटा दिया गया था। GTK_SIGNAL_FUNC के लिए भी यही है। दोनों को GObject लाइब्रेरी में ले जाया गया है, जहां वे अब G_OBJECT और G_CALLBACK के रूप में खड़े हैं।

पुराने कोड का उपयोग करने से बचने के लिए, बस GTK+ से कोड नमूने लेकर शुरुआत करें 3 दस्तावेज़

0
liberforce 13 फरवरी 2019, 13:35