-
LadyBird
- Beiträge: 24
- Registriert: So Jul 31, 2011 8:12 pm
Beitrag
von LadyBird » Do Mär 08, 2012 8:52 am
Hallo!
Ich habe versucht SDL_ttf auszuprobieren. Nun habe ich erst mal nur die Datei eingebunden:
Trotzdem erhalte ich Fehlermeldungen:
Code: Alles auswählen
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `Find_Glyph':|
(.text+0x2a5)||undefined reference to `FT_Load_Glyph'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `Find_Glyph':|
(.text+0x3e8)||undefined reference to `FT_Render_Glyph'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `Find_Glyph':|
(.text+0x5b9)||undefined reference to `FT_Get_Char_Index'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `Find_Glyph':|
(.text+0x5d7)||undefined reference to `FT_Render_Glyph'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `Find_Glyph':|
(.text+0x962)||undefined reference to `FT_Outline_Transform'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_Init':|
(.text+0xb38)||undefined reference to `FT_Init_FreeType'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_CloseFont':|
(.text+0xb7f)||undefined reference to `FT_Done_Face'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_OpenFontIndexRW':|
(.text+0xd07)||undefined reference to `FT_Open_Face'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_OpenFontIndexRW':|
(.text+0xd55)||undefined reference to `FT_Set_Pixel_Sizes'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_OpenFontIndexRW':|
(.text+0xe26)||undefined reference to `FT_Set_Char_Size'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_SizeUNICODE':|
(.text+0x1353)||undefined reference to `FT_Get_Kerning'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_RenderUNICODE_Solid':|
(.text+0x1825)||undefined reference to `FT_Get_Kerning'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_RenderUNICODE_Shaded':|
(.text+0x1ed5)||undefined reference to `FT_Get_Kerning'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_RenderUNICODE_Blended':|
(.text+0x257d)||undefined reference to `FT_Get_Kerning'|
/usr/lib/libSDL_ttf.a(SDL_ttf.o)||In function `TTF_Quit':|
(.text+0x28e9)||undefined reference to `FT_Done_FreeType'|
||=== Build finished: 15 errors, 0 warnings ===|
An meinem Code kann es nicht liegen, der besteht nur aus einer leeren main-Funktion. Vermutlich habe ich vergessen irgendeine Datei dazu zu linken. Um welche handelt es sich dabei?
-
Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Do Mär 08, 2012 9:20 am
Offenbar benutzt SDL_ttf eine weitere Library, die Du ebenfalls linken musst.
Wenn ich mich recht entsinne benutzt SDL ebenfalls pkg-config?
Hier steht, dass die FreeType-Library (FT_....!) benötigt wird. Hast Du die auf dem Rechner?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
nufan
- Wiki-Moderator
- Beiträge: 2558
- Registriert: Sa Jul 05, 2008 3:21 pm
Beitrag
von nufan » Do Mär 08, 2012 11:12 am
Hast du beim Linker "-lSDL_ttf" angegeben?
Xin hat geschrieben:Wenn ich mich recht entsinne benutzt SDL ebenfalls pkg-config?
Das Programm heißt "sdl-config".
Also z.B.:
Code: Alles auswählen
g++ -o test test.cpp -Wall `sdl-config --cflags --libs` -lSDL_ttf
-
LadyBird
- Beiträge: 24
- Registriert: So Jul 31, 2011 8:12 pm
Beitrag
von LadyBird » Fr Mär 09, 2012 5:32 pm
Wenn ich das auf diese Weise mache, funktioniert es. Jedoch hatte ich eigentlich versucht, mit Codeblocks zu arbeiten. Dort hatte ich libSDL_ttf.a und libfreetype.a eingebunden. Danach waren es statt 15 nur noch 5 Fehler. Heute habe ich das gleiche nochmal versucht, wieder mit einer leeren main-Funktion, und es wurden jedoch keine Fehler mehr angezeigt. Wenn ich das mit dem "normalen" g++ Compiler versuche, funktioniert das alles einwandfrei, auch ein Beispielprogramm. Dieses wirft unter Codeblocks jedoch wieder die selben 5 Fehler von gestern auf.
Trotzdem vielen Dank für die schnelle Hilfe, jetzt funktioniert es schon mal, wenn auch etwas anders, als ich es mir vorgestellt hatte. Aber immerhin.
-
Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Fr Mär 09, 2012 5:52 pm
Schau Dir die Ausgabe von Sdlconfig an und überttrage das nach Codeblocks, wie im Tutorial beschrieben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
-
nufan
- Wiki-Moderator
- Beiträge: 2558
- Registriert: Sa Jul 05, 2008 3:21 pm
Beitrag
von nufan » Mo Mär 12, 2012 11:12 am
LadyBird hat geschrieben:Jedoch hatte ich eigentlich versucht, mit Codeblocks zu arbeiten. Dort hatte ich libSDL_ttf.a und libfreetype.a eingebunden. Danach waren es statt 15 nur noch 5 Fehler.
Du musst libSDL.so und libSDL_ttf.so zu den gelinkten Bibliotheken hinzufügen.
-
oenone
- Beiträge: 223
- Registriert: Do Sep 01, 2011 2:42 pm
- Wohnort: Bremen
-
Kontaktdaten:
Beitrag
von oenone » Di Mär 13, 2012 7:16 pm
dani93 hat geschrieben:LadyBird hat geschrieben:Jedoch hatte ich eigentlich versucht, mit Codeblocks zu arbeiten. Dort hatte ich libSDL_ttf.a und libfreetype.a eingebunden. Danach waren es statt 15 nur noch 5 Fehler.
Du musst libSDL.so und libSDL_ttf.so zu den gelinkten Bibliotheken hinzufügen.
Naja, die libSDL_ttf linkt er schon statisch, ist also nicht mehr nötig..
-
LadyBird
- Beiträge: 24
- Registriert: So Jul 31, 2011 8:12 pm
Beitrag
von LadyBird » Mi Mär 14, 2012 9:12 pm
oenone hat geschrieben:dani93 hat geschrieben:LadyBird hat geschrieben:Jedoch hatte ich eigentlich versucht, mit Codeblocks zu arbeiten. Dort hatte ich libSDL_ttf.a und libfreetype.a eingebunden. Danach waren es statt 15 nur noch 5 Fehler.
Du musst libSDL.so und libSDL_ttf.so zu den gelinkten Bibliotheken hinzufügen.
Naja, die libSDL_ttf linkt er schon statisch, ist also nicht mehr nötig..
Nur mal nebenbei: sie ;)
Stimmt, dass bringt nichts. Die Fehler bleiben da. Scheinbar muss ich zlib oder so dazu linken, nur finde ich auch mit der Suche keine vernünftige Datei. Die Dateien, die auf .so oder .a enden
Es sind zwar mehrere Ordner mit dem Namen vorhanden, aber diese beinhalten nur Headerdateien, die leer sind, wenn ich versuche sie mit einem Texteditor zu öffnen. Vorhanden sein müssen die notwendigen Dateien ja, weil ohne Codeblocks funktioniert alles.
-
oenone
- Beiträge: 223
- Registriert: Do Sep 01, 2011 2:42 pm
- Wohnort: Bremen
-
Kontaktdaten:
Beitrag
von oenone » Do Mär 15, 2012 7:24 pm
LadyBird hat geschrieben:Nur mal nebenbei: sie
![Wink ;)](./images/smilies/icon_e_wink.gif)
Ups, sorry..
LadyBird hat geschrieben:Die Fehler bleiben da. Scheinbar muss ich zlib oder so dazu linken, nur finde ich auch mit der Suche keine vernünftige Datei. Die Dateien, die auf .so oder .a enden
Was für Fehler genau?
btw, .so-Dateien können auch noch ne Version danach haben, z.B. libfoo.so.2.3
Wie genau kompilierst du ohne Codeblocks?
-
Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
-
Kontaktdaten:
Beitrag
von Xin » Fr Mär 16, 2012 9:54 am
Ohne Codeblocks läuft es ja - Viel Interessanter die Frage, wie die Einstellungen des Linkers bei Codeblocks ist.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.