MinGW users, see that page.
If you have a choice, Cygwin is strongly recommended. The setup program is very self-explanatory. As a warning, it will probably take up >300MB on your system. You should install at least the following programs:
If you are missing anything else, the program will probably tell you. The following are not necessary but are good to have on hand as long as you are going to be using Unix and programming.
X-Window will give you a nicer environment in which to work. After you start Cygwin, type
startx to bring up a more usable, nice-looking terminal (and the ability to do a few thousand other things which are beyond the scope of this documentation). Once you have Cygwin installed and a good terminal running, you can follow along with the remainder of the discussion without modification.
Some older versions of Cygwin have a
search.h file which doesn't include the function
lsearch(). If this is the case on your system, you will have to update your Cygwin installation.
Finally, windows compilers often spit out lines like:
These lines are indeed just information, and not errors. Feel free to ignore them.
[Thanks to Andrew Felton and Derrick Higgins for their Cygwin debugging efforts.]