Seite 1 von 2

SDL_ttf einbinden

Verfasst: Do Mär 08, 2012 8:52 am
von LadyBird
Hallo!
Ich habe versucht SDL_ttf auszuprobieren. Nun habe ich erst mal nur die Datei eingebunden:

Code: Alles auswählen

#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
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?

Re: SDL_ttf einbinden

Verfasst: Do Mär 08, 2012 9:20 am
von Xin
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?

Re: SDL_ttf einbinden

Verfasst: Do Mär 08, 2012 11:12 am
von nufan
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

Re: SDL_ttf einbinden

Verfasst: Fr Mär 09, 2012 5:32 pm
von LadyBird
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.

Re: SDL_ttf einbinden

Verfasst: Fr Mär 09, 2012 5:52 pm
von Xin
Schau Dir die Ausgabe von Sdlconfig an und überttrage das nach Codeblocks, wie im Tutorial beschrieben.

Re: SDL_ttf einbinden

Verfasst: Mo Mär 12, 2012 11:12 am
von nufan
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.

Re: SDL_ttf einbinden

Verfasst: Di Mär 13, 2012 7:16 pm
von oenone
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..

Re: SDL_ttf einbinden

Verfasst: Mi Mär 14, 2012 9:12 pm
von LadyBird
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.

Re: SDL_ttf einbinden

Verfasst: Do Mär 15, 2012 7:24 pm
von oenone
LadyBird hat geschrieben:Nur mal nebenbei: sie ;)
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?

Re: SDL_ttf einbinden

Verfasst: Fr Mär 16, 2012 9:54 am
von Xin
Ohne Codeblocks läuft es ja - Viel Interessanter die Frage, wie die Einstellungen des Linkers bei Codeblocks ist.