SDL2 Undefinierte Verweise auf Funktionen
Ich versuche, ein C ++ - Projekt einzurichten, das auf MinGW aufbaut und SDL verwendet. Wenn ich versuche, mein Programm zu kompilieren, sagt g ++undefined reference to 'SDL_Function'
für jede SDL-Funktion verwende ich.
Lib / SDL2: Inhalte von SDL2-devel-2.0.0-mingw.tar.gz von der SDL-Website
Source / Main.cpp:
#include "SDL.h"
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow(
"Hello World",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
640, 480, 0
);
SDL_Delay(3000);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Ich verwende Rake, um den Erstellungsprozess ein wenig zu vereinfachen. Der Befehl, den es erzeugt, lautet:
g++ -Wall -ILib/SDL2/i686-w64-mingw32/include/SDL2 -Dmain=SDL_main -LLib/SDL2/i686-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows Source/Main.cpp -o Build/sdltest.exe
Und das sagt g ++:
Main.cpp:(.text+0xe): undefined reference to `SDL_Init'`
Main.cpp:(.text+0x42): undefined reference to `SDL_CreateWindow'`
Main.cpp:(.text+0x51): undefined reference to `SDL_Delay'`
Main.cpp:(.text+0x5c): undefined reference to `SDL_DestroyWindow'`
Main.cpp:(.text+0x61): undefined reference to `SDL_Quit'`
ld.exe: bad reloc address 0x20 in section `.eh_frame'`
ld.exe: final link failed: Invalid operation`
collect2.exe: error: ld returned 1 exit status`
Es sieht aus wie ein gewöhnliches Anfängerproblem, aber ich glaube, ich habe alle Fehlerbehebungspunkte bestanden:
Hauptfunktion hatint argc, char *argv[]
Ich benutze alle Flags von sdl-config (-Dmain = SDL_main -lmingw32 -lSDL2main -lSDL2 -mwindows)Ich versuche, die 'i686-w64-mingw32'-Version zu verwenden, wie angenommen, wenn 32-Bit-MinGW verwendet wirdAlle angegebenen Pfade scheinen korrekt zu seinIrgendeine Ahnung, was los ist?