GTK2 Fehler

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Antworten
Xeon
Beiträge: 74
Registriert: So Dez 17, 2017 4:10 pm

GTK2 Fehler

Beitrag von Xeon » Fr Jul 24, 2020 12:25 pm

Hallo zusammen

Ich lerne GTK2 mit C. Hier ist der Links vom Turtorial:

https://developer.gnome.org/gtk-tutorial/2.24/x542.html

Hier der Code vom Link oben:

Code: Alles auswählen

#include <glib.h>
#include <gtk/gtk.h>

static gboolean close_application( GtkWidget *widget,
                                   GdkEvent  *event,
                                   gpointer   data )
{
  gtk_main_quit ();
  return FALSE;
}

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window = NULL;
    GtkWidget *box1;
    GtkWidget *box2;
    GtkWidget *button;
    GtkWidget *separator;
    GSList *group;
  
    gtk_init (&argc, &argv);    
      
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  
    g_signal_connect (window, "delete-event",
		      G_CALLBACK (close_application),
                      NULL);

    gtk_window_set_title (GTK_WINDOW (window), "radio buttons");
    gtk_container_set_border_width (GTK_CONTAINER (window), 0);

    box1 = gtk_vbox_new (FALSE, 0);
    gtk_container_add (GTK_CONTAINER (window), box1);
    gtk_widget_show (box1);

    box2 = gtk_vbox_new (FALSE, 10);
    gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
    gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
    gtk_widget_show (box2);

    button = gtk_radio_button_new_with_label (NULL, "button1");
    gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
    gtk_widget_show (button);

    group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
    button = gtk_radio_button_new_with_label (group, "button2");
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
    gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
    gtk_widget_show (button);

    button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button),
	                                                  "button3");
    gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
    gtk_widget_show (button);

    separator = gtk_hseparator_new ();
    gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
    gtk_widget_show (separator);

    box2 = gtk_vbox_new (FALSE, 10);
    gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
    gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
    gtk_widget_show (box2);

    button = gtk_button_new_with_label ("close");
    g_signal_connect_swapped (button, "clicked",
                              G_CALLBACK (close_application),
                              window);
    gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
    gtk_widget_set_can_default (button, TRUE);
    gtk_widget_grab_default (button);
    gtk_widget_show (button);
    gtk_widget_show (window);
     
    gtk_main ();

    return 0;
}
Leider meldet mein GNU GCC Compiler folgende Fehlermeldungen:

warning: implicit declaration of function 'gtk_widget_set_can_default' [-Wimplicit-function-declaration]
undefined reference to `gtk_widget_set_can_default'
error: ld returned 1 exit status

Diese Version von GTK2 verwende ich: 2.12.9

Das Projekt habe ich mit CodeBlocks erstellt mit einer GTK Vorlage.

Hab ihr eine Idee was man das machen kann?


Liebe Grüße
Von Xeon

mfro
Beiträge: 324
Registriert: Mi Jan 16, 2013 4:58 pm

Re: GTK2 Fehler

Beitrag von mfro » Fr Jul 24, 2020 12:48 pm

Du hast entweder einen fehlerhaften Compileraufruf (zeigen!) oder nicht alle benötigten Pakete installiert
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Xeon
Beiträge: 74
Registriert: So Dez 17, 2017 4:10 pm

Re: GTK2 Fehler

Beitrag von Xeon » Fr Jul 24, 2020 1:07 pm

Meinst du das:
-------------- Clean: Debug in GTK2 (compiler: GNU GCC Compiler)---------------

Cleaned "GTK2 - Debug"

-------------- Build: Debug in GTK2 (compiler: GNU GCC Compiler)---------------

mingw32-gcc.exe -mms-bitfields -Wall -g -IC:\GTK\include -IC:\GTK\include\gtk-2.0 -IC:\GTK\include\cairo -IC:\GTK\include\gdk -IC:\GTK\include\glib-2.0 -IC:\GTK\lib\glib-2.0\include -IC:\GTK\include\pango-1.0 -IC:\GTK\lib\gtk-2.0\include -IC:\GTK\include\atk-1.0 -c "D:\C Code WIN\GTK2\main.c" -o obj\Debug\main.o

mingw32-g++.exe -LC:\GTK\lib -o bin\Debug\GTK2.exe obj\Debug\main.o -lgtk-win32-2.0 -lgobject-2.0 -lglib-2.0
D:\C Code WIN\GTK2\main.c: In function 'main':
D:\C Code WIN\GTK2\main.c:71:5: warning: implicit declaration of function 'gtk_widget_set_can_default' [-Wimplicit-function-declaration]
gtk_widget_set_can_default(button, TRUE);
^
obj\Debug\main.o: In function `main':
D:/C Code WIN/GTK2/main.c:71: undefined reference to `gtk_widget_set_can_default'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
2 error(s), 1 warning(s) (0 minute(s), 0 second(s))
Ich benutze Windows und habe GTK2 mit einem Installationsassistenten Installiert.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8574
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK2 Fehler

Beitrag von Xin » Fr Jul 24, 2020 2:38 pm

Er sucht die Funktion 'gtk_widget_set_can_default'.

Du lernst:
Xeon hat geschrieben:
Fr Jul 24, 2020 12:25 pm
Ich lerne GTK2 mit C. Hier ist der Links vom Turtorial:
https://developer.gnome.org/gtk-tutorial/2.24/x542.html
Version 2.24 von GTK.

Du verwendest:
Xeon hat geschrieben:
Fr Jul 24, 2020 12:25 pm
Diese Version von GTK2 verwende ich: 2.12.9
Die Doku sagt: https://developer.gnome.org/gtk2/stable ... an-default
Since: 2.18
Xeon hat geschrieben:
Fr Jul 24, 2020 12:25 pm
Hab ihr eine Idee was man das machen kann?
Yepp, ich hätte da eine. ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Xeon
Beiträge: 74
Registriert: So Dez 17, 2017 4:10 pm

Re: GTK2 Fehler

Beitrag von Xeon » So Jul 26, 2020 11:50 am

Habe jetzt die Version 2.24 Eingerichtet, jetzt geht es.

Danke Xin!

Antworten