Adrian17
Adrian17

Reputation: 443

I can compile with SDL1.2 but not with SDL2 (C::B)

I've been learning SDL for a little time, and now I've decided to try out SDL2, mainly to try its hardware acceleration. But the problem is, I can't compile it at all, while the same code compiled correctly with SDL1.2.

The sample code is:

#include "SDL/SDL.h"
int main( int argc, char *args[] )
{
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Quit();
    return 0;
}

With the original linker settings: -lmingw32 -lSDLmain -lSDL everything compiles.

But as soon as I change #include "SDL/SDL.h" to #include "SDL2/SDL.h" and change linker settings to -lmingw32 -lSDL2main -lSDL2 I get the errors:

obj\Debug\main.o||In function `SDL_main':|
main.cpp|5|undefined reference to `SDL_Init'|
main.cpp|8|undefined reference to `SDL_Quit'|
libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|

I've got SDL1.2 installed in C:/SDL-1.2.15 and SDL2 installed in C:/SDL2

In search directories, I added both SDL1.2 and SDL2 Include and Lib folders.

Upvotes: 0

Views: 1687

Answers (1)

BWG
BWG

Reputation: 2278

I'm not sure if this will work, but if you are using the "x86_64-w64-mingw32" folder, try using the other one (the one with i686) this helped me. I was having the EXACT same problem as you, and using literally, to the line, the same test code as you. I hope this helps.

Upvotes: 1

Related Questions