How do I print to the console while an SDL 2 program is running?
So, I figured out what's preventing me from seeing output. These compile options
-Wl,-subsystem,windows
essentially disable the console window, preventing output from being displayed. This is good for when a game is finished, but terrible for debugging. So, I went ahead and removed those compile options and now printf()
and SDL_Log()
work perfectly fine.
Since this is still on going issue with SDL2 in window when using mingw, here is the better solution that I found and tested as working.
Do not remove the -mwindows build option as others have suggested. You should be adding `pkg-config --libs SDL2` as your build options but for the debug build options you should also add -mconsole at the end. It should come after the -mwindows flag.
Debug: `pkg-config --libs SDL2` -mconsole
Release: `pkg-config --libs SDL2`
Note: I'm compiling for Windows 10, SDL2 v2.0.9, Msys64, mingw64, Code::Blocks 17.12
`pkg-config --libs SDL2` expands to:
-LC:/msys64/mingw64/lib -lmingw32 -lSDL2main -lSDL2 -mwindows
References:
SDL2: keep the -mwindows flag in the pkg-config --libs output #2419
configure: force -mconsole when linking SDL under MinGW