I have searched for this for many site and failed. But what does TDM stand for in "TDM-gcc"? It confuses me when I want to choose gcc as the compiler. So, what's the difference? Should I choose TDM or NON-TDM? Or is TDM only for minGW on Windows platform?
The official TDM-gcc site don't even explain it...
TDM-GCC is a GCC distribution on Windows. TDM stands for Twilight Dragon Media, the project's name.
Since you want GCC on Windows, you've 3 popular options
Also choose the right exception and threading model. Details: What is difference between sjlj vs dwarf vs seh? and mingw-w64 threads: posix vs win32.
If you not only want GCC but also a Unix-like shell with all the bin, core and findutils, you may use Cygwin or the lighter MSYS2. I personally prefer the latter; it also has a package manager and you get frequent updates for the packages installed.