gtkmm.h: no such file or directory



  • Hallo,
    ich weiß, dass es viele Threads über dieses Thema gibt. Aber mir hat keiner weitergeholfen und nach 3 erfolglosen Tagen hoffe ich, dass mir jemand weiterhelfen kann.

    Ich möchte mithilfe dieses Tutorials in die GUI-Programmierung mit gtkmm einsteigen: https://developer.gnome.org/gtkmm-tutorial/unstable/sec-basics-simple-example.html.en
    Die gtkmm-3.0 Bibliothek ist heruntergeladen und auf dem RaspberryPi nutze ich Geany als IDE.

    #include <gtkmm.h>
    
    int main(int argc, char *argv[])
    {
      auto app =
        Gtk::Application::create(argc, argv,
          "org.gtkmm.examples.base");
    
      Gtk::Window window;
      window.set_default_size(200, 200);
    
      return app->run(window);
    }
    

    Wenn ich das Beispielprogramm kompiliere, erscheint die Fehlermeldung: 'simple.cc:1:19: fatal error:gtkmm.h: No such file or directory'. Das Problem ist vermutlich, dass die gtkmm.h-Datei nicht direkt im include-Ordner des Raspis liegt, sondern in dessen Unterordner 'gtkmm-3.0'. Wenn ich die Include-Zeile zu

    #include/gtkmm-3.0/gtkmm.h
    

    ändere, folgen weitere Fehlermeldungen mit anderen .h-Dateien.

    Ich hoffe mir kann jemand helfen.
    Robin97



  • Wie kompilierst du? Probier mal:

    $(COMPILER) `pkg-config --cflags gtkmm-3.0` -c main.cpp -o main.o
    

    Beim Linken dementsprechend

    `pkg-config --libs gtkmm-3.0`
    

    mit dazugeben.
    Wie man das in Geany einstellt kann ich dir allerdings nicht sagen.



  • Danke schonmal für die schnelle Antwort 🙂

    Ich kompiliere immer direkt in Geany.

    Wenn ich, wie du vorgeschlagen hast, mit

    $g++ `pkg-config --cflags gtkmm-3.0` main.cpp -o main.o
    

    im Terminal kompiliere passiert nichts.

    Wie genau meinst du das mit dem Linken? Wo muss ich die Zeile dazugeben?



  • Mit

    g++ -std=c++14 `pkg-config --cflags --libs gtkmm-3.0` main.cpp -o app
    

    sollte er eigentlich das ganze Progamm bauen inklusive linken. Wenn du keine Ausgabe erhälst heißt das, dass das Kompilieren erfolgreich war! (Bei mir hat er gemeckert, wenn ich nicht explizit den C++ Standard mit angebe)

    Sorry ich hatte einen kleinen Fehler in meinem ersten Post, es müsste heißen

    $(COMPILER) `pkg-config --cflags gtkmm-3.0` -c main.cpp -o main.o
    

    Hab’s nun korrigiert.



  • Mit

    g++ -std=c++14 `pkg-config --cflags --libs gtkmm-3.0` main.cpp -o app
    

    funktioniert es 🙂 🙂 🙂

    Vielen Dank für die Hilfe, Biolunar!!!


Anmelden zum Antworten