Newbie GTK Programm error: sigc++/compatibility.h: No such file or directory



  • Hallo,
    ich mache gerade ein GTK tutorial, benutze kdevelop und bin etwas neu in der Programmierung. 🤡
    Das Programm kompiliert mit dem Konsolenbefehl

    g++ -o main `pkg-config --libs --cflags gtkmm-2.4 glibmm-2.4 sigc++-2.0` main.cpp
    

    unter kdevelop jedoch nicht. Ich denke, dass ich bei den Projekteinstellungen etwas falsch gemacht habe und die richtigen Bibliotheken linken müsste. Unter Project Options->Configure Options habe ich deshalb geändert:
    Im Reiter general options:
    im Feld Linker Flags (LDFlags) steht nun:

    `pkg-config --libs --cflags gtkmm-2.4 glibmm-2.4 sigc++-2.0`
    

    und im Reiter C++ im Feld Compiler Flags (CXXFlags) steht nun:

    `pkg-config --libs --cflags gtkmm-2.4 glibmm-2.4 sigc++-2.0`
    

    Sicherheitshalber steht auch im Reiter C im Feld Compiler Flags (CFlags)

    `pkg-config --libs --cflags gtkmm-2.4 glibmm-2.4 sigc++-2.0`
    

    Die Fehlermeldung ist:

    cd '/home/cuser/ERadiotion/helloGTK/debug/./src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" LC_MESSAGES="C" LC_CTYPE="C" gmake hellogtk
    compiling main_window_glade.c (g++)
    /home/cuser/ERadiotion/helloGTK/src/main_window_glade.cc:35:34: error: sigc++/compatibility.h: No such file or directory
    /home/cuser/ERadiotion/helloGTK/src/main_window_glade.cc: In constructor 'main_window_glade::main_window_glade()':
    /home/cuser/ERadiotion/helloGTK/src/main_window_glade.cc:54: error: 'SigC' has not been declared
    gmake: *** [main_window_glade.o] Error 1
    *** Exited with status: 2 ***
    

    main.cpp:

    #include <gtk/gtk.h>
    
    int main( int   argc,
              char *argv[] )
    {
        GtkWidget *window;
    
        gtk_init (&argc, &argv);
    
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        gtk_widget_show  (window);
    
        gtk_main ();
    
        return 0;
    }
    


  • Okay also das erste Problem ist, dass du in deinem Code GTK+ (C) verwendest aber KDevelop die GTKmm-Libraries (C++) verwendet.
    Ich kann dir den Grund dafür jetzt nicht nennen, weil ich mich mit KDevelop nicht auskenne. Möglicherweise hast du einfach ein C++-Projekt mit GUI erstellt und KDevelop macht das dann automatisch.

    blan



  • Danke für die Antwort.

    Es scheint so zu sein, dass es sich tatsächlich um ein kdevelop Problem handelt und ich dort irgendwas falsch konfiguriert habe (ich also falsch gepostet habe). Ich probiere nun eine geeignetere IDE. Bei kdevelop scheine ich noch mehr nicht zu verstehen.... 😡 😡 😡



  • Heuschrecke schrieb:

    Danke für die Antwort.

    Es scheint so zu sein, dass es sich tatsächlich um ein kdevelop Problem handelt und ich dort irgendwas falsch konfiguriert habe (ich also falsch gepostet habe). Ich probiere nun eine geeignetere IDE. Bei kdevelop scheine ich noch mehr nicht zu verstehen.... 😡 😡 😡

    mit MonoDevelop kann man auch C / C++ Programme mit GTK+ und anderen Libraries, welche mit pkg-config arbeiten, sehr gut programmieren. Bis auf paar Kleinigkeiten kann man mit der Version 2.0 ganz gut arbeiten.

    blan


Anmelden zum Antworten