It just means to set a flag in the PE header that tells the OS not to
allocate a console for the program when started. This is usually the
desired behavior when the program has a GUI, because you don't want the
console window appearing in that case. It is really unfortunate that
somebody decided to call this "-mwindows", it should really be
-mno-console, which compliments its reciprocal option -mconsole (which
is the default.)
mwindows is not a library. Quoting from https://cygwin.com/ml/cygwin/2007-04/msg00027.html: