PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SDL gfx mit MINGW - wie installieren?



jay-t
16-10-2007, 14:49
Hallo ich versuche SDL gfx 2.0.16 mit MINGW zu compilieren.
Die Bibliothek kann ich compilieren und mit "make install" wird sie auch
installiert.

Wenn ich aber die Testprogramme in "Test" erstellen will bekomme folgende Fehler:




(gekürzt wegen Textlimit)

1451: undefined reference to `_imp__polygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1468: undefined reference to `_imp__polygonRGBA'
TestGfxPrimitives.o: In function `BenchmarkPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1489: undefined reference to `_imp__polygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1496: undefined reference to `_imp__stringRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1504: undefined reference to `_imp__polygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1512: undefined reference to `_imp__stringRGBA'
TestGfxPrimitives.o: In function `TestAAPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1527: undefined reference to `_imp__aapolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1533: undefined reference to `_imp__aapolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1539: undefined reference to `_imp__aapolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1556: undefined reference to `_imp__aapolygonRGBA'
TestGfxPrimitives.o: In function `BenchmarkAAPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1577: undefined reference to `_imp__aapolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1584: undefined reference to `_imp__stringRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1592: undefined reference to `_imp__aapolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1600: undefined reference to `_imp__stringRGBA'
TestGfxPrimitives.o: In function `TestFilledPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1616: undefined reference to `_imp__filledPolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1622: undefined reference to `_imp__filledPolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1628: undefined reference to `_imp__filledPolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1645: undefined reference to `_imp__filledPolygonRGBA'
TestGfxPrimitives.o: In function `BenchmarkFilledPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1666: undefined reference to `_imp__filledPolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1673: undefined reference to `_imp__stringRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1681: undefined reference to `_imp__filledPolygonRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1689: undefined reference to `_imp__stringRGBA'
TestGfxPrimitives.o: In function `TestTexturedPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1707: undefined reference to `_imp__texturedPolygon'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1714: undefined reference to `_imp__texturedPolygon'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1720: undefined reference to `_imp__texturedPolygon'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1730: undefined reference to `_imp__texturedPolygon'
TestGfxPrimitives.o: In function `BenchmarkTexturedPolygon':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1756: undefined reference to `_imp__texturedPolygon'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1763: undefined reference to `_imp__stringRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1772: undefined reference to `_imp__texturedPolygon'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1780: undefined reference to `_imp__stringRGBA'
TestGfxPrimitives.o: In function `TestBezier':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1795: undefined reference to `_imp__bezierRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1801: undefined reference to `_imp__bezierRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1807: undefined reference to `_imp__bezierRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1824: undefined reference to `_imp__bezierRGBA'
TestGfxPrimitives.o: In function `BenchmarkBezier':
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1845: undefined reference to `_imp__bezierRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1852: undefined reference to `_imp__stringRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1860: undefined reference to `_imp__bezierRGBA'
C:/msys/1.0/home/Stefan/sources/sdl_gfx-2.0.16/Test/TestGfxPrimitives.c:1868: undefined reference to `_imp__stringRGBA'
collect2: ld returned 1 exit status
make: *** [TestGfxPrimitives.exe] Error 1


Scheinbar wird die Bibliothek nicht gefunden. Wie kann man das lösen?

Treehouse
16-10-2007, 23:03
Wie compillierst du denn wenn ich mal fragen darf (Befehl meine ich)??
Und wie lautet deine " #include " zeile

jan61
17-10-2007, 00:00
Wie compillierst du denn wenn ich mal fragen darf (Befehl meine ich)??
Und wie lautet deine " #include " zeile

Die Includes sind bei dieser Fehlermeldung uninteressant, sonst würde sich schon der Precompiler melden. Da fehlt eine -l Option des Linkers, sprich - es fehlt eine zu linkende Bibliothek. Interessant ist also der Compileraufruf.

Jan

jay-t
17-10-2007, 13:19
Hier ist der Anfang. Ich habe nur ./configure und make eingegeben.
Also keine Flags gesetzt.

Die libSDL_gfx.a und libSDL_gfx.la sind im lib Verzeichnis, werden aber scheinbar nicht gefunden?



/bin/sh ./libtool --mode=link gcc -g -O2 -DWIN32 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -o TestGfxPrimitives.exe TestGfxPrimitives.o -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows -lSDL_gfx
gcc -g -O2 -DWIN32 -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -o TestGfxPrimitives.exe TestGfxPrimitives.o -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows -lSDL_gfx
TestGfxPrimitives.o: In function `ClearScreen':C:/msys/1.0/home/Stefan/SDL_gfx-2.0.16/Test/TestGfxPrimitives.c:112: undefined reference to `_imp__pixelRGBA'
:C:/msys/1.0/home/Stefan/SDL_gfx-2.0.16/Test/TestGfxPrimitives.c:118: undefined reference to `_imp__hlineRGBA'
:C:/msys/1.0/home/Stefan/SDL_gfx-2.0.16/Test/TestGfxPrimitives.c:119: undefined reference to `_imp__hlineRGBA'

jan61
17-10-2007, 19:49
Moin,

so wie ich das sehe, stehen die benötigten Libraries nicht in /usr/local/lib, sondern in Deinem "privaten" lib-Verzeichnis? Es ist nur der Library-Pfad /usr/local/lib angegeben (Option -L). Hast Du make install als root aufgerufen? Ansonsten gibt es 2 Möglichkeiten: Kopiere die Libraries dahin oder ändere die -L-Option auf Dein lib-Verzeichnis.

Jan

jay-t
19-10-2007, 16:27
MINGW ist die gcc Umgebung für Windows. Die Shell wandelt den Pfad wie er
bei Linux verwendet wird in den entsprechenden MINGW Pfad um.

Das hier ist in /usr/local/lib:



libSDL.a libSDL.la libSDL_gfx.la pkgconfig
libSDL.dll.a libSDL_gfx.a libSDLmain.a

jay-t
06-02-2008, 06:11
Ok, ist jetzt zwar schon länger her, aber bei einem neuen Versuch fand ich
jetzt eine Lösung.

Mit "configure" wie ich es von Linux gewohnt bin, geht es nicht.
Man muß im "Makefile.mingw" den Prefix Pfad angeben wo die Includes
und Bibliotheken sind. Also z.B. "C:/MinGW", wenn dort die Ordner "include" und "lib" sind.

Danach reicht ein "make -f Makefile.mingw".