SDL2 Undefined Reference (native MinGW-w64 and MXE)

"namandixit" <[email protected]>
Newsgroups gmane.comp.lib.sdl
Message-ID <[email protected]>
Last thing I want to do is to ask *this* one question which has been asked so many times. Anyways...

I can't get my SDL2 game to link for Windows (though it compiles and links perfectly on Linux). The errors are


Code:

C:\msys64\tmp\ccXMO8av.o: In function `SDL_main':
C:\msys64\home\naman\ascend/src/game/ascend.c:102: undefined reference to `SDL_LogInfo'
C:\msys64\home\naman\ascend/src/game/ascend.c:104: undefined reference to `SDL_LogInfo'
C:\msys64\home\naman\ascend/src/game/ascend.c:114: undefined reference to `SDL_LogInfo'
C:\msys64\home\naman\ascend/src/game/ascend.c:116: undefined reference to `SDL_GL_DeleteContext'
C:\msys64\home\naman\ascend/src/game/ascend.c:117: undefined reference to `SDL_DestroyWindow'
C:\msys64\home\naman\ascend/src/game/ascend.c:118: undefined reference to `SDL_Quit'




and so on for ~50 more lines.

On MXE while cross-compiling, using $(sdl-config --libs) didn't work (same errors) but $(sdl-config --static-libs) did. Fine. Whatever.
Now, on Windows 7 64-bit using MinGW-w64 (installed through MSYS2), that doesn't work either through gcc or clang (on 32-bit "namespace" i.e. /mingw32). SDL2 was installed using packages  mingw-w64-i686-SDL2

The compilation command I am using is:

${CC} ${CFLAGS} ${LDFLAGS} SUPER_SECRET_FILE_NAMES  -o ${GAMEPATH}/${ASCEND_BINARY_NAME}

where

CFLAGS="-g3 -I${INCINDPATH} -I${INCDEPPATH} -std=c99 -O1 $(sdl2-config --cflags)"
LDFLAGS="-lm $(sdl2-config --static-libs)"

which expands to

CLFAGS="-g3 -Iinclude/platform_independent -Iinclude/platform_dependent/windows -std=c99 -O1 -I/mingw32/include/SDL2 -Dmain=SDL_main"
LDFLAGS="-lm -L/mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc"

Using $(sdl-config --libs) instead of --static-libs expand to:

LDFLAGS="-lm -L/mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows"

The paths generated by sdl-config are correct; and according to numerous answers all around the internet, so are the flags. Only weird thing I can find is that MSYS2 doesn't install libSDL2.la file in /mingw32/lib. However, it doesn't work even if if I manually change these paths appropriately to point to SDL2-devel-2.0.4-mingw.tar.gz's content. 

What else should I try?

_______________________________________________
SDL mailing list
[email protected]
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.