tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
768
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    diabolus diabolus ist offline Mitglied Bronze
    Registriert seit
    Aug 2010
    Beiträge
    42
    Mahlzeit!

    Verkloppt mich nicht gleich wenn ich hier in dem Forum etwas falsch bin, aber ich war unentschlossen ob ich das jetzt in C/C++ rein klatsche oder hier. Hier war mir aber dann doch irgendwo sinnvoller.

    Worum es geht. Ich habe einige Jahre auf dem Amiga mit C und MUI Programmiert. Auch komplexere Dinge wie CyberGL Anwendungen. Bin also da nicht zwingend der Anfänger. Nun hat es mich die Tage geritten und ich wolle mich mal auf Linux versuchen. Seit fast 2 Jahren habe ich ausschliesslich Linux auf dem Rechner, aber seit meinen aktiven Amiga Zeiten eigentlich nicht mehr wirklich mit C gearbeitet. Das will ich jetzt ändern.

    Also habe ich mir ein Tut gesucht was recht gut beschrieben ist. Dieses ist folgendes:
    http://wwwuser.gwdg.de/~kboehm/ebook/inhalt.html

    Bis zu dem Punkt wo es um GTK+ geht kann ich auch alles nachvollziehen und benutzen. Doch bei GTK+ musste ich erst einmal heraus finden wie ich die include-pfade angebe und dennoch kann ich das im Tut angeführte Listibg 2101 nicht compilieren.

    Ich benutze folgenden Befehl:

    Code :
    1
    
    gcc -I /usr/include/gtk-2.0/ -I /usr/include/glib-2.0/ -I /usr/include/cairo -I /usr/include/pango-1.0 -I /usr/lib/glib-2.0/include/ -I /usr/lib/gtk-2.0/include -I /usr/include/atk-1.0 -O2 -fomit-frame-pointer -o a.out list2101.c

    Das Ergebnis ist folgendes:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    /tmp/ccnNggZE.o: In function `loeschen_funk':
    list2101.c:(.text+0xb): undefined reference to `g_print'
    /tmp/ccnNggZE.o: In function `main':
    list2101.c:(.text+0x38): undefined reference to `gtk_init'
    list2101.c:(.text+0x44): undefined reference to `gtk_window_new'
    list2101.c:(.text+0x4b): undefined reference to `gtk_widget_get_type'
    list2101.c:(.text+0x57): undefined reference to `g_type_check_instance_cast'
    list2101.c:(.text+0x6f): undefined reference to `gtk_widget_set_usize'
    list2101.c:(.text+0x74): undefined reference to `gtk_window_get_type'
    list2101.c:(.text+0x80): undefined reference to `g_type_check_instance_cast'
    list2101.c:(.text+0x90): undefined reference to `gtk_window_set_title'
    list2101.c:(.text+0x95): undefined reference to `gtk_object_get_type'
    list2101.c:(.text+0xa1): undefined reference to `g_type_check_instance_cast'
    list2101.c:(.text+0xe1): undefined reference to `gtk_signal_connect_full'
    list2101.c:(.text+0xe9): undefined reference to `gtk_widget_show'
    list2101.c:(.text+0xee): undefined reference to `gtk_main'
    list2101.c:(.text+0xfa): undefined reference to `g_print'
    /tmp/ccnNggZE.o: In function `loeschen_funk':
    list2101.c:(.text+0x13): undefined reference to `gtk_main_quit'
    collect2: ld gab 1 als Ende-Status zurück
    diabolus@horst ~/C $

    Ich muss gestehen das ich damit im Moment etwas überfordert bin, vielleicht weil ich zu damaligen Zeiten immer mit StormC, also einem kompletten Entwicklungs-Kit gearbeitet habe, vielleicht habe ich auch nur den Faden etwas verloren.

    Aber wenn mir jemand helfen könnte wäre ich sehr dankbar.
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Du hast vergessen die Bibliotheken zu linken.

    Normalerweise kompiliert man erstmal den C Code zu Objektdateien und linkt dann alles mit dem Bibliotheken zusammen.

    Die notwendigen Argumente (Include-Pfade, Library-Pfade etc.) können mit pkg-config ermittelt werden:
    Code bash:
    1
    2
    
    gcc $(pkg-config --cflags gtk+-2.0) -c -O2 -fomit-frame-pointer list2101.c
    gcc -o list2101 list2101.o $(pkg-config --libs gtk+-2.0)
    Weiterhin wäre es sinnvoll (wenn die Projekte größer werden und aus mehr als einer Datei bestehen) ein Buildsystem einzusetzen. Z.B. CMake, waf, scons oder auch die autotools.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. 3D programmieren
    Von napsi im Forum CSS
    Antworten: 1
    Letzter Beitrag: 06.05.09, 21:41
  2. Programmieren ?
    Von pmonaco im Forum Coders Talk
    Antworten: 1
    Letzter Beitrag: 27.05.06, 15:09
  3. DLL Programmieren!
    Von virus720 im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 15.04.05, 12:58
  4. Com programmieren
    Von MichiStroi im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 30.01.05, 19:54
  5. QT Programmieren
    Von ultrakollega im Forum Coders Talk
    Antworten: 1
    Letzter Beitrag: 20.04.04, 21:52