how does mingw-w64 work
Ok I'm gonna provide you some background first. I used MSVC up until I decided to use g++ instead. I learned that there is an operating system called gnu which has a bunch of tools. Here is my first question, can the tools be separately built for windows? If yes then why isn't there something like g++ for windows?
After some research I found some projects, cygwin which emulates a unix environment which means that I can use the gnu tools? And mingw-w64 which as I understand is a port of gcc and some other tools for windows. But then why is mingw also in cygwin? mingw is a port for windows and cygwin is emulating unix so how does it have mingw packages in it?
Also in the download page of mingw it says that "it is not the home of gcc" and you need something else that has mingw and gcc in it in order to use it? Why is that? i though it was a port of gcc wasn't that the point. And there is some stuff about rewriting header files, is that cpp related? Do different operating system require different c++ headerfiles in order to compile with different compiler or something?
Also can someone say the technical stuff about mingw and how did they achieve this?