How to Install gcc on Win32
For those of you who don't know, gcc
is the gnu c compiler. It is free,
and is available for almost any platform imaginable, including Win32.
Just as there are a number of distributions of Linux, there are also a
number of distributions of gcc, especially on the Win32 platform.
Hopefully this document should clear up some confusion.
Console Telnet is now capable of being
compiled on gcc. So if your excuse for not being part of the development
team has been lack of a compiler, you'd better come up with something better
or get to work! <grin>. The first step is to download a compiler;
one of the following should do:
der Heijden's Mingw32-GCC page - includes GCC 2.8.1 (March 4, 1998),
a very nice distribution of Mingw32. There is also a version of GNU
Make here you will want to download, especially if you download gcc a
distribution that is missing Make. Note (Jan. 20, 1998): This page now
contains a link to a working EGCS 1.1.1; check the FTP server.
Colin Peters' Mingw32
page - the original Mingw32 project, distributed as a patch to Cygwin32
Khan's EGCS port to Mingw32 and Cygwin32 - EGCS 1.1 port of Mingw32
and Cygwin32. Does not include GNU Make.
Mendes' EGCS 1.1-4 distribution with DirectX5 support - the English
version of this page is a bit hard to read, but this version claims COM
The Latest Cygwin release
- now includes support for Mingw32 (-mno-cygwin) and EGCS 1.1. Also
the most updated (recent) link of the bunch.
- should work in theory, but still won't produce a working telnet.exe binary.
Cygwin was the first port of gcc to the Win32 platform. DJGPP is
a DOS (32-bit) compiler, ported by DJ Delorie, but with RSXNTDJ it should
be able to produce Win32 binaries. Mingw32 is a patch to Cygwin so
that it won't use the CYGWIN.DLL library. From the Mingw32-GCC page:
Basically, Cygwin32 does two things: it implements
the PE-COFF format for GCC and binutils, and it provides a transparent
unix emulation layer on top of Windows. This makes it possible to rebuild
large, existing unix applications with minimal changes to their source
code, using GCC. The flip side of the coin is a substantial decrease in
speed for both the compiler, and the applications built with it because
of the overhead introduced by the unix emulation layer (`cygwin.dll'')
Mingw32-GCC reuses the Cygwin32 PE-COFF support code. But, it does not
attempt to be unix: it uses the Microsoft CRTDLL as it's C library. So,
Mingw32-GCC, and the programs you build with it, behave like you would
expect from a Windows application. They supports drive letters for example.
Since the latest Cygwin release supports Mingw32, I see no reason not to
use it, except for the reason that Console Telnet won't compile correctly
A side effect of using CRTDLL is that Mingw32 is thread-safe,
while Cygwin32 is not.
Now about EGCS vs. GCC:
EGCS is a simply a newer version of GCC. GCC is in a development
phase right now, and EGCS is the development part. It is fairly stable,
and supports C++ much better than GCC (G++). Note that the version
number on the egcs version of gcc is egcs-2.9x-xx; this is because EGCS
follows in the same version number system as GCC.
Follow the instructions that come with the distribution for installing
the utilities. Be sure to set GCC_EXEC_PREFIX and add the BIN directory
to your PATH. You can test your installation with gcc -v. Here
are a few pointers:
The next step is to download the latest source to Console Telnet.
Previous versions probably won't compile under gcc. You can download
the latest version from the
If Make complains about not being able to find Makefile, you may have a
case-sensitive Make. Simply rename MAKEFILE to Makefile or makefile.
For the egcs distribution of Mingw32, you may have to copy as.exe and ld.exe
to the same directory as cpp.exe and cc1.exe. This shouldn't be necessary,
but at least it works.
If you use Cygwin, be sure to use the -mno-cygwin option. If you
don't you may end up with odd results (due to the unix emulation layer).
Some of the Win32 header files may not work with gcc. Winsock.h is
one of these. Either download the latest Win32 headers or fix the
lines that give you the problem (requires changing the order of some
The Cygnus version of gcc seems to core dump when compiling keytrans.cpp.
I have no idea why. If you do get keytrans.cpp to compile, then you will
need to install the Mingw32 version of libstdc++ in order to link.
If you want an IDE, there are a couple of options:
- Quincy 99 - a Windows 9x/NT IDE for C/C++ compilers
- VIDE - A freeware C++ GUI framework for Windows, X, and OS/2 that comes with a g++ IDE (get the v121-win-util.tgz file from the FTP server)
- GRASP - Graphical Representations of Algorithms, Structures and Processes (Auburn University)
- a DOSish development environment for DJGPP. Has a nice interface
to gdb (the GNU debugger).
- DFE95 - a Win95-style
development environment, also for DJGPP, but works with Mingw32 and others.
As for help files, these pages may prove interesting: