Build in Code::Blocks bringt Fehlermeldung bezüglich GCC beim build mit der GTK Lib



  • Hallo @ all,

    ich habe im Code blocks ein GTK+ 3.0 Projekt erstellt und vorher die GTK 3 Library installiert ( libgtk-3-dev ). Auch die Einstellungen für Compiler-> other compiler options (pkg-config gtk+-3.0 --cflags) und Linker -> other Linker options (pkg-config gtk+-3.0 --libs-export-dynamic ) gemacht. Trotzdem kriege ich die Fehlermeldung :

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

    gcc -Wall -export-dynamic -g '/usr/bin/pkg-config gtk+-3.0 --cflags’ 'usr/bin/pkg-config gtk+-3.0 --cflags' -c /home/pi/Desktop/C-Programming/Hlech65730/GTK/main.c -o obj/Debug/main.o
    /usr/bin/ld: /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/Scrt1.o: in function _start': (.text+0x28): undefined reference tomain'
    collect2: error: ld returned 1 exit status
    Process terminated with status 1 (0 minute(s), 0 second(s))
    2 error(s), 0 warning(s) (0 minute(s), 0 second(s))

    Hier ist der Code :

    [tt]#include <stdlib.h>
    #include <gtk/gtk.h>
    
    static void helloWorld (GtkWidget *wid, GtkWidget *win)
    {
      GtkWidget *dialog = NULL;
    
      dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
      gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
      gtk_dialog_run (GTK_DIALOG (dialog));
      gtk_widget_destroy (dialog);
    }
    
    int main (int argc, char *argv[])
    {
      GtkWidget *button = NULL;
      GtkWidget *win = NULL;
      GtkWidget *vbox = NULL;
    
      /* Initialize GTK+ */
      g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
      gtk_init (&argc, &argv);
      g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
    
      /* Create the main window */
      win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_container_set_border_width (GTK_CONTAINER (win), 8);
      gtk_window_set_title (GTK_WINDOW (win), "Hello World");
      gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
      gtk_widget_realize (win);
      g_signal_connect (win, "destroy", gtk_main_quit, NULL);
    
      /* Create a vertical box with buttons */
      vbox = gtk_vbox_new (TRUE, 6);
      gtk_container_add (GTK_CONTAINER (win), vbox);
    
      button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
      g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);
      gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
    
      button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
      g_signal_connect (button, "clicked", gtk_main_quit, NULL);
      gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
    
      /* Enter the main loop */
      gtk_widget_show_all (win);
      gtk_main ();
      return 0;
    }[/tt]
    

    Dabezieht sich die Fehlermeldung nicht auf die gtk Lib sondern auf den GCC :
    /usr/bin/ld: /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/Scrt1.o: in function _start': (.text+0x28): undefined reference tomain'
    also klappt der Einsprung in die main Funktion durch die Funktion _start nicht.
    Ach so, es handelt sich um Raspbian/Debian Stretch (9) als BS.
    Wie komme ich denn da jetzt weiter ?
    Danke, Gruß, Hlech65730



  • Paßt der Pfad zu der main.c-Datei?

    PS: Du hast zweimal '/usr/bin/pkg-config gtk+-3.0 --cflags' in den gcc-Optionen stehen.


Log in to reply