Probleme mit Gtk-Programmierung unter Debian

Post Reply
Message
Author
sesame

Probleme mit Gtk-Programmierung unter Debian

#1 Post by sesame »

Hallo,

möchte mit der Gtk-Programmierung starten unter Debian/Gnome.

Beim Kompilieren werden aber die headerdateien nicht gefunden, obwohl sie alle in zig Unerverzeichnissen installiert sind.


Selbst Anweisungen wie

Code: Select all

gcc main.cc -o prog1 `pkg-config --cflags --libs gtk+-2.0`
oder

Code: Select all

 gcc main.cc -o prog1 `gnome-config --cflags --libs gnomeui`
bringen nichts.

Wieso wird einem die Entwicklungsarberit so schwer gemacht?
Es kann doch nicht sein, dass ich die Libs installiere und nirgendwo sind dann die Befehle für's Kompilieren zu finden?
Selbst meine Versuche, alle Dateien in /usr/include aus den Unterverzeichnissen heraus zu kopieren, scheiterte, da es einfach zu viel ist. Warum macht man das m.E. so wahnsinnig kompliziert?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Libraries und Headerdateien sind zwei verschiedene Paar Schuhe! Der Grund, warum es für dich so schwer ist, ist, dass du die Ordnung im vermeintlichen Chaos nicht erkennst und versuchst, deine eigene Ordnung zu schaffen (was schwer ist).

Zunächst solltest du mal Fehlermeldungen posten, anstatt einfach "bringt nichts". So kann man dir nicht helfen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sesame

#3 Post by sesame »

Danke für die Antwort erstmal.
Ist mir schon klar, dass alles seine Ordnung haben soll, nur so viele Unterverzeichisse sind mir zu viel Ordnung.

Unter
http://www.linuxforen.de/forums/showthread.php?t=191735
habe ich genau mein Problem nochmal im Nachhinein gefunden.

Nur geht's immer noch nicht.

Wenn ich z.B. folgendes Musterprogramm nehme:

Code: Select all

#include <gtk/gtk.h>

int main&#40;int argc, char** argv&#41; &#123;
    GtkWidget *app;
    gnome_init&#40;"example", "0.1", argc, argv&#41;;
    app = gnome_app_new&#40;"example", "title"&#41;;
    gtk_widget_show&#40;app&#41;;
    gtk_main&#40;&#41;;    
    return 0;
&#125;
dann kommt beim Kompilieren
mittels
gcc main.cc -o base `pkg-config --cflags --libs gtk+-2.0`
nun die Fehlermeldung
main.cc: In function »int main(int, char**)«:
main.cc:5: Fehler: »gnome_init« wurde in diesem Gültigkeitsbereich nicht definiert
main.cc:6: Fehler: »gnome_app_new« wurde in diesem Gültigkeitsbereich nicht definiert
Und dabei meine ich mich an dieses Tutorial gehalten zu haben: http://www.gtk.org/tutorial/c39.html

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Als Grundproblem sehe ich schon mal, dass deine Datei .cc heißt, also ein C++-Programm darstellt. Du bindest aber Header der Form <xxx.h> ein, also C-Header. In diesen fehlt das "extern C { ... }", so dass es da Schwierigkeiten geben sollte.

Probier mal, ob das Problem nach dem Umbenennen von main.cc in main.c weiterhin besteht.

Weiterhin hast du gnome_xxx-Funktionen aufgerufen, obwohl du oben nur gtk einbindest. Für Gnome fehlen dir weitere Headerdateien. Guck dir bitte zusätzlich auch dieses
http://developer.gnome.org/doc/tutorial ... mming.html
Tutorial an.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sesame

#5 Post by sesame »

Jetzt geht's!

Auf http://www.linuxheadquarters.com/howto/ ... ndow.shtml
habe ich ein funktionierendes Beispiel gefunden.

Mittels

Code: Select all

gcc main.c -o base `pkg-config --cflags --libs gtk+-2.0`
kompiliert; und nun funktioniert es anstandslos.
Durchblick habe ich nun immer noch nicht, kann aber daran arbeiten. :-)

Post Reply