__imp__ - Problem bei mingw

Hi
Ich möchte ein Programm, dass ich unter Linux geschrieben habe, nach Windows portieren.

Als IDE verwende ich Code::Blocks mit mingw.
Da nicht alle Bibliotheken mitgeliefert wurde, musste ich mir diese mit Hilfe von MSYS selber compilieren. Darunter SDL_gfx.

Und genau diese Bibliothek macht jetzt Probleme
Linkerfehler: undefined reference to `__imp__pixelColor'

Die Bibliothek habe ich im Projectmanager angegeben. Das Problem ist allerdings, dass die Funktion in der Bibliothek _pixelColor heißt.

Wie bringe ich CodeBlock bzw den Linker dazu nicht nach __imp__pixelColor sondern nach _pixelColor zu suchen?
ODER
Was ist beim Kompilieren der Bibliothek schief gelaufen?
 
Typische Vorgehensweise... setze ein ifdef ein.

Code:
#ifdef WINDOWS
... Windows-Code hier ...
#endif
#ifdef UNIX
... Unix-Code hier ...
#endif

Dann kannst du den Compiler einfach anweisen den entsprechenden Wert zu definieren:

Code:
gcc -DWINDOWS ...
 
Der Code selber ist nicht das Problem.
Der Prototyp im Header ist der Gleiche. Der Code wird auch fehlerfrei kompiliert. Das Problem ist, dass der Kompiler die Funktion __imp__pixelColor nennt (im object-file), der Linker in der libSDL_gfx.a aber nur _pixelColor vorfindet.

maw: __imp__pixelColor == _pixelColor - Nur weiß mein Linker dass leider nicht :)

Im header SDL_gfxPrimitives.h befinden sich folgende zeilen:
Code:
#ifdef WIN32
#ifdef BUILD_DLL
#define DLLINTERFACE __declspec(dllexport)
#else
#define DLLINTERFACE __declspec(dllimport)
#endif
#else
#define DLLINTERFACE
#endif

Scheibe ich im Code ein #define BUILD_DLL vor die include-anweisung kommt der Fehler nicht.
Aber ich möchte doch nichts in eine DLL exportieren.
 
Zurück
Oben