It is -l (lower case L) as for library.
Those are linker-flags/arguments. Actually, for every non standard header you include you need to tell the linker, which is called from the compiler, except you say otherwise, which library to link to. -l means it is in the linker search path - with -L you can give an explicit path.
somehow you fiddled -SDL2main -SDL2 into that and -lmingw32 twice.
See if you can compile a C++ hello world with g++.
From linux shell:
gcc sdl_test.c -lSDL2 -o sdl_test
or g++ for C++. Note that filenames on linux don’t need a suffix.
And I think on MS Windows you need to link against SDL main also: