मैं जीयूआई प्रोग्रामिंग के लिए नया हूँ। मैंने हाल ही में लिनक्स पर 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;
1 उत्तर
ऐसा इसलिए है क्योंकि आपका कोड नमूना GTK+ 2 के पुराने संस्करण के लिए है। GTK_OBJECT
को देर से GTK+ 2.x संस्करणों में बहिष्कृत कर दिया गया था, और अंत में GTK+ 3 में हटा दिया गया था। GTK_SIGNAL_FUNC
के लिए भी यही है। दोनों को GObject लाइब्रेरी में ले जाया गया है, जहां वे अब G_OBJECT
और G_CALLBACK
के रूप में खड़े हैं।
पुराने कोड का उपयोग करने से बचने के लिए, बस GTK+ से कोड नमूने लेकर शुरुआत करें 3 दस्तावेज़ ।
संबंधित सवाल
नए सवाल
gtk
जीटीके (पूर्व में जीटीके +) क्रॉस प्लेटफॉर्म संगतता और एपीआई का उपयोग करने में आसान के साथ ग्राफिकल यूजर इंटरफेस (जीयूआई) बनाने के लिए एक टूलकिट है।