Cygwin is a Windows program that dumps .exe's, but that is the problem: it (the compiler) only runs on Windows. Cygwin is essentially a Linux emulator for Windows when used correctly.
To compile Windows programs from Linux (aka cross-compiling) just install the mingw32 package. Now, instead of using gcc (or g++) to compile, you use i586-mingw32msvc-gcc (or i586-mingw32msvc-g++ if you use C++ code).
So, to compile main.c into program.exe, run this:
Hope I wasn't too confusing with that description.
i586-mingw32msvc-gcc -o program.exe main.c