Announcement

Collapse
No announcement yet.

indlude gtk libraries funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • indlude gtk libraries funktioniert nicht

    Hallo, ich weiß, gtk zu verwenden ist nicht das einfachste unter Eclipse, aber der Debug unter Eclipse ist einfach zu gut!

    Ich habe Eclipse immer mit C verwendet, ( C/C++ Development Tools SDK ) und will jetzt ein kleines Programm unter Ubuntu 12.04 schreiben und die grafische Oberfläche mittels gtk.

    Ein einfacher code damit nichts falsch geht:
    #include <gtk/gtk.h>

    int main(int argc, char *argv[])
    {
    GtkWidget *window;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    // g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    gtk_widget_show_all(window);
    gtk_main();
    return 0;
    }
    über die Konsole geht alles prima (gtk ist also richtig installiert)
    g++ gtkstart main.cpp $(pkg-config gtk+-2.0 --cflags --libs)
    Jetzt gehts los:
    ich will die gtk-libraries zu Eclipse verlinken, also unter: projekt(right-click) -- properties -- C/C++ general -- paths and symbols -- GNU C++ folgendes hinzu gefügt:
    /usr/include/gtk-2.0
    /usr/lib/glib-2.0/include

    gtk/gtk.h wird jetzt erkannt ( gehe unten auf apply, damit die Bibliothen neu aufgebaut wird )

    pkg-config output:
    -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
    einige bibliotheken

    das hab ich unter: properties - c/c++ - settings - linker und c++ compiler - expert mode: comand line --- hinzugefügt, damit der Befehl den Eclpise ausführt vom Eclipse gleich ist wie der der des Terminals


    Die einfache gtk_init Funktion nicht erkannt, was ja wirklich basic gtk sein sollte.
    Danke schonmal.
    Ist bestimmt nur die richtigen bibs an der richtigen stelle einfügen, dürfte aber doch ein bisschen gemeinsame arbeit sein, da ich wirklich schon einiges (2 Tage mehr als hier beschrieben probiert und durch Foren gewühlt habe).

    Andere Frage, seit wann gibt es Eclipse, das unter Help keinen Marketplace hat?

    Liebe Grüße
    Zuletzt editiert von jackomo; 26.12.2012, 16:06.

  • #2
    Glück gehabt
    Deaktiviert man unter:
    properties - C/C++ Build - setting - GCC C++ Linker - Shard Library Settings - deaktivieren: Shared (-shared)
    bleibt der Linker auf einmal nicht mehr hängen.
    Ich weiß ehrlich gesagt nicht genau warum, könnte mir vorstelle, dass gtk_init mehrfach deklariert war und jetzt die überflüssige deklaration nicht mehr eingeflossen ist.
    Hatte mir die ausgabe vom compilieren mit g++ in der Konsole mit -v angeschaut, da gibt es einige mehrfach deklarierte Funktionen.
    Wie markiert man einen Tread als gelöst ?

    Comment


    • #3
      Wie markiert man einen Tread als gelöst
      Das geht hier nicht....
      Christian

      Comment

      Working...
      X