Installing cygwin

This document was written by Sam Holden, who taught PP in previous years. I don't really know anything about cygwin, and given that Sam's no longer teaching the course I think he'd be somewhat less than thrilled to be getting emails asking for help installing cygwin. If you have trouble installing cygwin and this document doesn't help, consider posting to the PP or Unix message boards, or searching the web.

Remember that your assignments have to work on the department's unix machines, and "But it works in cygwin" isn't an excuse - so if you have a lot of trouble with it, you might be better off just spending your time in the labs.

Kevin Pulo.


Cygwin is a GNU unix-like environment for Microsoft Windows computers. You are probably interested in it because it provides a C++ environment similar to that on the undergrad computers here.

The simplest way to install cygwin is to use the setup.exe program. There is an official README file that comes with cygwin that you probably want to read. If it doesn't make sense, then I've written a step by step explanation of my installation of cygwin...


Simply run the setup.exe file (which you can do by clicking that last link. If your internet connection tends to go down you should probably download and save the file for later use, otherwise just run it as in this screenshot.

Windows will ask if you really want to run the file and since you do, you should click Yes. Windows asked me with the following dialog.

The setup program will then run and you should click Next to start installing...

We then get asked where what it is we would like to do, in this case we'll just install the software straight off the web so select 'Install from Internet' and click Next.

Then we get asked where to download the packages to. I suggest not using the default (in my case that was the Desktop) and creating a directory somewhere and using that. I used c:/packages. After that click Next.

Then we choose where to install. The default where fine for me you might like to change the install location. Again we click Next to continue.

Now we get asked how to connect to the internet. Since IE probably knows how to do that we might as well do as it does. Then click Next.

Then we choose where to download the software from. You could use any of the mirrors (the australian one might be wise) but since there's a copy on the cs web server we might as well use that so select 'Other URL' at the bottom and click Next yet again.

Now we have to enter the URL that cygwin can be found at. You'll want to enter http://www.cs.usyd.edu.au/~kev/pp/RESOURCES/CYGWIN/ which is different from what's in the screenshot (which is too long to see fully anyway).

Almost done. We now need to select the packages to install. If hard disk and download time don't matter then just leave it set to install everything. If you care about either of those two things then you could choose not to install some components by clicking the circly arrowy icons. You want at least these components : ash, bash, binutils, cygwin, fileutils, gcc, gdb, gzip, less, make, tar, and w32api. I installed everything. I strongly suggest you don't check any of the src buttons unless you like waiting a long time for the downloads (or your on a fast connection - the source code is about 3x as large as the binaries). As always click Next.

The program should download and install the components which will take some time. More time if your network connection is slow. When it's done it will pop up yet another Next button to click on...

All done. The setup program now says good-bye. Click the OK button and cygwin should be installed.

Assumming you didn't uncheck the 'Add to Start Menu' checkbox you can start a bash shell by selecting 'Cygwin Bash Shell' from the 'Cygnus Solutions' folder in the Programs menu on the Start menu.

A DOS window should pop up running bash.

I suggest you create a small test C++ program in your favourite windows editor, save it as hello.cc in the c:/cygwin/home/ directory (or wherever you installed cygwin). Compile it with 'g++ hello.cc' and then run it with ./a.exe and hope it works...