Entwickler-Ecke

Off Topic - C++: GTK+ (gtkmm) einrichten


Jakob_Ullmann - Mo 14.06.10 17:20
Titel: C++: GTK+ (gtkmm) einrichten
Hi!

Ich wollte mir mal ansehen, was bei C++ in Sachen GUI läuft. Nachdem ich mir wxWidgets angesehen habe, fand ich doch, dass mir gtkmm besser gefällt. Die von mir bevorzugte IDE Anjuta bietet dafür ja Glade-Support. Das war mir aber zu langweilig, ich will wirklich mal GUIs von Hand programmieren. Ich hab jetzt also (Ubuntu Karmic Koala) folgendes ins Terminal eingegeben (so oder so ähnlich):


Quelltext
1:
sudo apt-get install libgtkmm-2.4-dev                    


Ging auch soweit. Nun habe ich bei Anjuta ein neues Projekt "Generisches C++" erstellt und bei der main.cc folgenden Source eingegeben:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
#include <gtkmm-2.4/gtkmm.h>

int main(int argc, char *argv[])
{
  Gtk::Main kit(argc, argv);
  Gtk::Window window;

  Gtk::Main::run(window);

  return 0;
}


Erst hatte ich nur wie beim Beispiel "#include <gtkmm.h>" dastehen. Da gab es aber tausende Fehler. Also hab ich mich mit dem Terminal durch das Verzeichnis /usr/include gehangelt und herausgefunden, dass der Ordner /usr/include/gtkmm-2.4/ heißt. Dann hab ich das wie oben angepasst und bei Anjuta Projekt->Eigenschaften das Modul "gtkmm-2.4" hinzugefügt. Die gtkmm.h findet er jetzt, aber jetzt gibt es 161 weitere Fehler. Ich weiß nicht, wie ich die kopiere, aber die ersten sind welche der Art:


Quelltext
1:
2:
3:
4:
5:
/usr/include/gtkmm-2.4/gtkmm.h:29:20: error: glibmm.h: No such file or directory
/usr/include/gtkmm-2.4/gtkmm.h:30:19: error: giomm.h: No such file or directory
/usr/include/gtkmm-2.4/gtkmm.h:31:19: error: gdkmm.h: No such file or directory
/usr/include/gtkmm-2.4/gtkmm.h:33:26: error: gtkmm/object.h: No such file or directory
/usr/include/gtkmm-2.4/gtkmm.h:34:31: error: gtkmm/aboutdialog.h: No such file or directory


Und die sind ja alle in den gtkmm-Sourcen, die ja schreibgeschützt sind (natürlich kann ich den Schreibschutz einfach aufheben und die Pfade in den Code setzen, aber so richtig sauber wäre das nicht).

Es muss doch eine vernünftige Lösung geben, das richtig zu konfigurieren. Bei der IDE Code::Blocks ist das ähnlich verzwickt. Und so richtig habe ich keine Lust, mit g++ von Hand zu compilieren, falls das heute noch jemand macht.

Jemand ne Idee? Irgendwas ist da ja wahrscheinlich bei der Konfiguration schief gelaufen...

---
Nachtrag: Wenn ich einfach eine GTK-Anwendung mit Glade-Designer compiliere, klappt alles. Komischerweise.
Nachtrag2: Und wenn ich's von Hand kompiliere, geht's auch (mit GEdit und g++ über das Terminal).


Regan - Mi 23.06.10 11:24

Wie wäre es, statt einem "Generisches C++"-Projekt ein "GTKmm"-Projekt zu erstellen?

Edit: Vielleicht noch etwas mehr Text: Das Problem liegt an dem Linken (frag mich nicht, wie man das manuell machen kann). Deshalb linkt Anjuta wie alle IDE bei einem klassischen C++ Projekt nicht, weil es ja extra ohne zusätzliche Fähigkeiten erstellt werden soll.


Jakob_Ullmann - Mi 23.06.10 19:44

OK, ich habe jetzt herausgefunden, wie ich Anjuta dazu bewegen kann (abgesehen von dem gtkmm-Projekt, wo ja auch jede Menge Müll erzeugt wird):

- Datei -> Neu -> Projekt -> C++ -> Generisches C++
- Externe Pakete konfigurieren: ja.
- in das erste Edit-Feld "gtkmm-2.4" eintragen

Dann klappt das auch ganz normal.

Trotzdem danke!