gtk für c installiert und läuft nicht ;(

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von mailtopp, 10.09.2006.

  1. mailtopp

    mailtopp Thread Starter MacUser Mitglied

    Beiträge:
    692
    Zustimmungen:
    3
    MacUser seit:
    17.09.2003
    hi,

    hab mir gtk für den mac runtergeladen (ist eine library mit benutzeroberflächen für c). In der readme stand folgende Installationsanweisung:

    configure --disable-static
    make
    [su]
    make install

    das hab ich gemacht und das hat auch funktioniert! dann is so ein helloworld beispiel dabei.. wenn ich das mit gcc compilliere kommt folgende antwort:

    helloworld.c:5:21: gtk/gtk.h: No such file or directory
    helloworld.c:9: error: parse error before '*' token
    helloworld.c:15: error: parse error before "delete_event"
    helloworld.c:15: error: parse error before '*' token
    helloworld.c:34: error: parse error before '*' token
    helloworld.c: In function `main':
    helloworld.c:44: error: `GtkWidget' undeclared (first use in this function)
    helloworld.c:44: error: (Each undeclared identifier is reported only once
    helloworld.c:44: error: for each function it appears in.)
    helloworld.c:44: error: `window' undeclared (first use in this function)
    helloworld.c:45: error: `button' undeclared (first use in this function)
    helloworld.c:52: error: `GTK_WINDOW_TOPLEVEL' undeclared (first use in this function)
    helloworld.c:84: error: `gtk_widget_destroy' undeclared (first use in this function)

    In der helloworld.c is oben per include folgende header datei eingebunden:
    #include <gtk/gtk.h>

    Die findet er anscheinend nicht und deswegen kennt er die funktionen nicht! wisst ihr, wohin ich diesen gtk ordner kopieren muss, dass er sie an der richtigen stelle findet?
     
  2. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Wenn es bei make und make install keine Fehler gab, ist die GTK-Installation in Ordnung. Zum Kompilieren von GTK-Anwendungen gibt es das Dienstprogramm gtk-config; es liefert die nötigen Argumente (include-, lib-Verzeichnisse, Libraries und sonstige Flags) innerhalb des gcc-Aufrufes.

    Rufe gcc mal folgendermaßen auf:
    Code:
    gcc `gtk-config --cflags` `gtk-config --libs` -o helloworld helloworld.c
    
    Ich habe allerdings GTK+ für X11 erwischt, starten mit open-x11 ./helloworld. Beim Kompilieren ist man aber mit gtk-config immer auf der sicheren Seite.
     
    Zuletzt bearbeitet: 10.09.2006
  3. mailtopp

    mailtopp Thread Starter MacUser Mitglied

    Beiträge:
    692
    Zustimmungen:
    3
    MacUser seit:
    17.09.2003
    was sind das für komscihe hoch-kommas? damit kann meine shell nix anfangen...
     
  4. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Das sind rechtsfallende Hochkammata, (bzw. accent grave), in der Shell-Lingo bekannt als Backticks. Die führen die eingeschlossenen Zeichenketten als Befehl in einer Sub-Shell aus und die Bash substituiert die zurückgelieferte Zeichenkette. Damit MUSS Deine Shell etwas anfangen können; andernfalls hast Du Dich vertippt.

    Es könnte sein, dass Du im Terminal [SHIFT] und ` und dann [SPACE] drücken musst, um einen isolierten Backtick zu erhalten.

    Beispielsweise solllte echo `gtk-config --cflags` folgenden oder ähnlichen Output liefern:
    Code:
    -I/sw/include/gtk-1.2 -I/sw/include/glib-1.2 -I/sw/lib/glib/include -I/usr/X11R6/include
     
    Zuletzt bearbeitet: 11.09.2006
  5. mailtopp

    mailtopp Thread Starter MacUser Mitglied

    Beiträge:
    692
    Zustimmungen:
    3
    MacUser seit:
    17.09.2003
    87-193-13-146:~ pipsen$ echo `gtk-config --cflags`
    -bash: gtk-config: command not found
     
  6. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Mein GTK kommt aus fink. Dann musst Du es bei Dir mal suchen oder im Makefile nachlesen, wo die Binaries defaultmäßig liegen.
     
Die Seite wird geladen...

Diese Seite empfehlen