Installation and Usage



All packages require MS Windows 2000 / XP / 2003 / Vista / 2008 / 7 with msvcrt.dll. If msvcrt.dll is not in your system folder (Windows\System or Windows\System), get it from Microsoft or by installing Internet Explorer 4.0 or higher. Some packages also require msvcp60.dll, which is in the same Microsoft sources. Packages from 2009 and earlier usually run also on 9x (MS Windows 95 / 98 / ME) and NT systems. Newer packages may also run on 9x and NT, but no new code to make them run on these systems, will be added. So, if a package does not run on 9x or NT, use an older release.

Some packages require other packages as well (and these may require still other packages!). Usually they require only the dynamic link library (DLL), contained in <package>-<version> All required packages from GnuWin, i.e. excluding msvcrt.dll, perl, etc, are included in the Setup programs and the dependencies zip files.

Be careful not to use another version of a library that depends on crtdll.dll; any call to an executable with an implicit dependence on both msvcrt.dll and crtdll.dll, crashes. Nor should you mix CygWin dlls and native dlls.


There are two ways to install: by a setup program and by zip files. From the package list, you can download a package by means of a setup program. Just follow the instructions. You may install more than one package in the same directory, e.g. E:\Program Files\GnuWin. The setup program, created with Inno Setup Compiler, accepts command-line options, amongst others for silent install.

At the end of the installation setup you will be given the option to download the sources. If after the installation you wish to get the sources, then go to the package page by clicking on the entry in the column Package. There you can also install from individual zip files, which are smaller in size than the install programs; but then you will have to take care of any dependencies, as listed in the requirements section of the package page, yourself. Download the zip files you need, copy them to a directory and unzip the archives. Some packages must be installed in their default directories (usually c:\progra~1\<packagename>), or you have to set corresponding environment variables or set options at the command line; see the documentation of the package, or, when available, the installation instructions on the package page. Packages newer than 1 April 2002 may be installed in any directory, provided the subdirectory structure is maintained; native language support, if supplied by the package, is then also active.

Mathias Michaelis has written a download and maintenance utility.



Most programs are command-line programs, and so should be run from a command prompt (DOS-box: or cmd.exe). In the Windows Explorer, you may also associate a program or a batch file that calls the program, with a file extension. The length of the command-line is limited; see MSDN.

Path separators

The MS-Windows command interpreters, and cmd.exe, understand both the backward slash '\' (which is the default) and the forward slash '/' (such as on Unix) in filenames. In general, it is best to use forward slashes, since some programs internally use the filename, e.g. to derive a directory name, and in doing this rely on the forward slash as path separator.

Temporary-file directory

On MS-Windows 95 / 98 / ME, the standard temporary-file directory is usually pointed at by the environment variable TEMP. Programs with a Unix origin use however the environment variables TMP or TMPDIR. If these have not been defined, then the program tries the directory /tmp, which on MS-Windows usually does not exist, and so they exit with a failure. It is therefore best to add TMP =%TEMP% and TMPDIR=%TEMP% to your environment.

Home directory

Several programs search for user-specific configuration files in the directory pointed at by the environment variable HOME or in one of its subdirectories. Therefore, set HOME to the directory where these files are to be found. On MS-Windows NT / 2000 / XP, it is usually best to set HOME to %HOMEDRIVE%%HOMEPATH%. In user and reference manuals, the HOME directory is often abbreviated by ~.

Filename globbing and quoted arguments

The MS-Windows command interpreters expand wildcards on the command-line sometimes differently from Unix:

The use of quoted arguments on MS-Windows is quite complicated. An short explanation is given when you type help cmd at the cmd prompt. The following characters must be enclosed in double quotation marks: & < > [ ] { } ^ = ; ! ' + , ` ~ [white space], since otherwise the command shell strips them and they will not be passed as argument.

Filename wildcards are being matched by means of the short filename. This may lead to unexpected results. For example, the short file name of test2.abcx is TEST2~1.ABC (to see this, give the command dir /x), and this matches *.abc. Therefore a command such as ls *.abc will also report test2.abcx; see the MS-Windows description of the dir command.

Large-file support

Packages newer than 1 April 2003, have been compiled with large-file support (LFS). These programs should be able to access files up to 9 EB (exabyte) = 9,000,000 TB (terabyte) = 9,000,000,000 GB. If you never use files larger than 2 GB, there is no need to upgrade packages just because large-file support has been added. Note that the current MS-Windows implementation of file systems allow for maximum file sizes of 4 GB on FAT16, 128 GB on FAT and 256 TB = 256,000 GB on NTFS; see Chapter 13: Working with file systems of the MS-Windows XP Resource Kit.

Native-language support

Most GNU packages have the ability to output messages in several languages. This native-language support (NLS) requires the LibIntl and the LibIconv libraries. On MS-Windows they have been adapted so that NLS chooses the system language, unless the environment variables LANG and LANGUAGE have been set. The language codes (ISO 639) for these environment variables are different from the MS-Windows ones. When using a program in a console window ( or cmd.exe) and setting LANG and LANGUAGE, you must also set the correct code page with the chcp command; for Western European languages, code page 1252 usually suffices. You can change the default code page by changing the OEMCP value in the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

For other languages, such as those with a Cyrillic character set, NLS may not operate correctly, unless a TrueType font with these characters has been chosen. If you want to disable NLS, then set the environment variables LANGUAGE and LANG to en; then all messages will be in English.



Binaries are in <package>-<version> This includes the dynamic link libraries (DLL) of the package, as well as text versions of the man pages. In general, this is the only part that you need for running the programs of the package, provided any dependencies (listed under Requirements) have also been installed. For packages newer than 1 August 2003, dependencies are included in <package>-<version> If a package can be installed by a setup program, the dependencies are included in the setup program for the binaries.
DLL's have a version number attached to their name; releases of a DLL that have the same version number have compatible interfaces, i.e. functions are called in the same way.


The developer sub-package <package>-<version> contains include files and libraries for developing programs. The libraries are: a static GCC library (suffix: .a) and a GCC (suffix: .dll.a) import library for using the dynamic link library (DLL) that is contained in the binary sub-package.
For developing applications with the libraries, you will usually also need the LibGwC library. If you wish to develop applications, then read the Notes on compilation.


The documentation sub-package <package>-<version> contains documentation in Html (.html), MS-Windows Compiled HTML (.chm), MS-Windows Help (.hlp), Postscript (.ps), PDF (.pdf) and TeX DVI (.dvi) formats. The file <package>-<version> contains text versions of the man pages.