Free Compilers |
About GCC (last update 11-29-2014)
Many of the free C compilers listed here are ports of
GCC, which is the standard compiler
that comes with all Linux distributions. GCC used to stand for the GNU
C Compiler, but it now stands for the GNU Compiler Collection since
it has grown to include front-ends for C, C++, Objective C, Fortran 95,
Java, and Ada, as well as other
front-ends.
GCC is highly portable, very robust, and was
started over 30 years ago by
Richard Stallman and the
Free Software Foundation (FSF).
GCC has been called "the most important piece of software in the world" by
Arthur Griffith, author of
GCC:
The Complete Reference.
Lately GCC is consistently putting out quality new releases.
Check their
informative web site to see the latest versions
and features.
BENCHMARKS
GNU maintains a GCC benchmark page which has links to several independent benchmarks of GCC.
Also see my 2011 Win32/64 Compiler Comparison.
Embarcadero (was Borland) (last update 5-31-2009)
Embarcadero
is the latest owner of the original Borland C++ compiler
as of July 2008
They still offer version 5.5 (released in August of 2000)
of the Borland C++ compiler for free download,
as well as a trial version of their latest commercial compiler.
The obvious downside is that this compiler dates back to 2000,
but it does install painlessly and doesn't take up a lot of space
on your hard drive, which is remniscent of Turbo C.
In fact, if you are used to the old Borland Turbo C way of
doing things, you should feel right at home with this compiler. This
free version does
not come with an integrated development environment (IDE).
Everything must be done from the command line.
Also, the license does not allow for commercial software development (i.e.
you cannot sell the software that you develop with this compiler).
The included documentation is
thorough and easy to follow. Unfortunately, this free version of
Borland's compiler generally produces the slowest running executables
according to my Win32 Compiler Comparison
Ch (last update 5-31-2009)
Ch is a cross-platform, C/C++ interpreter from softintegration.com. It touts
itself as "an embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical computing, and embedded scripting."
I have not tried it, but the user testimonials
page has some convincing endorsements. The standard edition is free for
personal and commercial use. The professional edition, which has
built-in plotting support, is $500 for non-academic use. There
are also several toolkits for numerical analysis and web programming.
Cygwin (last update 5-31-2009)
The Cygwin Project provides
a Linux-like environment for Windows, including the cygwin DLL and
a ton of linux packages
which have been ported to cygwin, including
gcc 4.3.2. Cygwin
and works with both 32-bit and
64-bit versions of Windows, though support for Windows Me/98/95 will
be discontinued with v1.7.0 (in beta test as of 5-31-09).
It is a very popular package for those wishing to port Linux apps to
Windows.
If you do not have a lot of Linux experience and just want a Windows
compiler, I do not recommend using Cygwin.
Digital Mars (last update 12-29-2011)
This is one of three free C compilers not ported from GNU C. It
used to be Zortech C++ and then Symantec C++. Now it is
the Digital
Mars C/C++ Compilers by
Walter Bright.
This compiler (on v8.5 as of May 2009) has a reasonable footprint and
installs painlessly, and, thanks to some quick work by the author,
it flawlessly compiled all of the code in my
2002 Win32 Compiler Comparison and
performed admirably in my
2011 Win32/64 Compiler Comparison.
Digital Mars generates "Win32, Win16, DOS16 and DOS32" exe's
(though the development environment is Win32 only).
The Digital Mars web pages
have lots of interesting links (e.g. Walter Bright's new
D programming
language), and they are worth checking out.
DJGPP (last update 6-3-2009)
Another port of the GNU-C compiler to MS-DOS is DJ Delorie's port,
known as DJGPP (DJ's GNU Programming
Platform). I used this
compiler way back in the MS-DOS days before MS Windows took hold.
It's strength is generating
32-bit DOS applications, but with RSXNTDJ (RSXNT for DJGPP), it can
be used to create Win32 apps like EMX/RSXNT. The disadvantage
(compared to EMX/RSXNT, for example) is that
the compiler and other tools are distributed in MS-DOS 32-bit format
instead of Win32 format, and this means that they run more slowly on
a Windows 95/NT
system. Go to DJ's web site
for all kinds of information on GNU, C compilers, etc.
EMX/RSXNT (last update 6-1-2009)
RSXNT, developed by Rainer Schnitker, appears to be defunct.
Rainer Schnitker's home page for his port of GNU C to Win32 has now
gone missing, and he hasn't re-surfaced in a google search as of
2009. RSXNT is a solid port of GCC to the Win32 environment, but I
started using MinGW32 instead
back in September 2002. MinGW is actively supported.
One advantage to RSXNT is the capability to
create a single .exe file which will run in both
native Win32 mode and in MS-DOS (with a couple of support files, and
assuming that the code is a "console" application which has no Win32 calls).
This simplifies code maintenance if you are developing for a mixed
environment which includes some very old PC's. Otherwise,
I would use MinGW.
Click here to get the RSXNT compiler
(based on gcc 2.7.2) and install instructions from my web server.
I've designed my distribution
to have an install feel more like MinGW (a single directory tree rather
than the three that Rainer had his distribution set up for).
Intel (last update 6-3-2009)
They're not Win32 compilers, but Intel does offer their
Linux
compilers (C, C++, and FORTRAN) and other Linux development tools
to non-commercial developers free of charge.
They are offering 11.0 as of May 2009. You have to provide
an e-mail address to get the software,
and it's only for non-commercial development.
Read more about Intel in the commercial compilers column
on this page.
Lcc-win32/64 (last update 1 Nov 2014)
Lcc-win32 is a Win32 C compiler based on
lcc, a
retargetable compiler authored by
Christopher Fraser and David Hanson at AT&T.
The lcc compiler was ported to Win32/64 and bundled with tools
and documentation and called lcc-win32/64
by Jacob Navia. This version is being actively maintained as of late 2014.
It is easy to install and has a compact footprint (120 MiB) which includes both
the 32-bit and 64-bit compilers.
I have no idea about the performance
but I am curious now since it is being actively maintained. My guess based on the
command-line optimizations is that it does not generate significantly faster code than it did
several years ago. The only SSE options are SSE-3.
It is worth noting that lcc and lcc-win32 are different compilers
and have different licensing agreements. Lcc is free for personal
and commercial use, while lcc-win32/64 is free only for personal use.
I tried lcc-win32 out briefly back on version 3.0.
You can see performance results in my Win32
Compiler Comparison.
It was easy to set up, had a small footprint, compiled code very quickly,
and came with a nice text editor and a Win32 documentation file,
though the Win32 doc file is quite old (1996)
and does not include recent Win32 API's.
(A better place for Win32 API's is msdn.microsoft.com.)
Microsoft (last update 1-21-2012)
You can get Microsoft's Visual C/C++ compiler (32 and 64-bit)
from Microsoft's freely downloadable
software development kits (SDKs), e.g. the
Windows 7 SDK
(you'll also want
VC++ 2010 SP1
and you'll need
.Net Framework 4).
If you also want the Visual Studio GUI/IDE, you can find it on the
Visual Studio Express Editions Download Page, which includes
Visual C++ 2010 Express Edition, along with Visual Basic, C#, etc. A table comparing the Express (free) edition with the others
is on the Visual C++ Editions page. Note that the C/C++ compiler that comes bundled with Visual Studio Express
generates only 32-bit code (but the Win 7 SDK comes with both 32-bit and 64-bit compilers).
The download page says
this:
What is Visual Studio Express? Visual Studio 2010 is a complete development environment from Microsoft for creating web applications, client (Windows) applications, and Windows Phone 7 applications. In contrast, Visual Studio 2010 Express is a set of free, entry-level products that features streamlined interfaces and core capabilities that focus on providing the tools that you need for creating applications for a single platform. For example, Visual Studio 2010 Express for Windows Phone provides the tools that you need to create games and applications for Windows Phone 7. Integration with Visual Studio Team Foundation Server, and advanced design, development and test capabilities, such as 64-bit development, unit testing and remote debugging, are not included in the Express products.
|
... and the Visual C++ 2010 Express page talks about Visual C++ in particular ...
Visual C++ 2010 Express is part of the Visual Studio 2010 Express family, a free set of tools that Windows developers at any level can use to create custom applications using basic and expert settings. Visual C++ is a powerful language that is designed to give you deep and detailed control when you build either native Windows (COM+) applications or .NET Framework managed Windows applications.
|
I benchmarked Visual C/C++ 2010 in my 2011 Win32/64 Compiler Benchmark.
MinGW-32/64 (last update 12-29-2011)
If you don't need the Linux/Unix API provided
by Cygwin, you can get a GCC port from
the MinGW Page for a "Minimalist"
(i.e. not so unix-like and more Win32-like) implementation of GCC
under Windows. A lot of the MinGW pages seem out of date,
so I actually go to the MinGW-64
page more often these days since that is where I can more readily find newer builds based on the
latest gcc versions. There are actually so many packages that
what you have to download is confusing. They have a
"what do I download" explanation page, but I didn't find it very helpful.
They need a simple step-by-step example of what to do
if you're a first-timer who just wants to compile Win64 code on his/her Win64 system.
Until then, see my MinGW Install Notes.
Here are my 2011 Win32/64 C Compiler Comparisons
which include MinGW with gcc 3.x and 4.x, and here are some benchmarks of MinGW64 gcc under Windows 7.
See my MinGW/Gnu C Tips page for more information and tips on MinGW.
Miracle C (last update 6-4-2009)
The Miracle C compiler, authored
by Tadeusz Szocik,
isn't quite free and only compiles traditional ANSI C programs
(it does not include any Win32 headers or libraries). But the shareware
fee is only $19, it has a small footprint (1 MB), it installed and uninstalled
flawlessly in Win XP, and it comes
with an integrated development environment
(workbench), so I thought it at least deserved a blurb.
Orange C (last update 2-8-2015)
Orange C, developed by
David Lindauer, has been under development since 2006 and is a compact (only 8 MB,
with the installed package having a footprint of less than 20 MB)
package which is targeted for Win32 and includes an IDE. Orange C claims to support the C89,
C99, and C11 standards, though it does not compile C++. The compiler does not appear to
have a significant number of optimization options--only a flag to turn them off (/O-).
I was able to build and run a few of my C Compiler benchmarks on Orange C, and it
generally had build times similar to GCC and executable performance times that
were not very good--typically the slowest of any other compiler except for Tiny CC, so it's not
the compiler for you if you want top-performing executables.
Still, it looks very easy to set up and get started and it comes with a basic set of Windows
header files--a good option for somebody who wants to get started quickly at no cost. Here's
a testimonial from a user who e-mailed me in January 2015:
...I went on line and your pages was one of the pages that I came to. I tried several that were listed and wasn't real happy. And then I found the Orange C compiler. I don't know if you had a chance to try this compiler. ... It has turned into a really nice and friendly IDE. I am not very intuitive when it comes to using software. I need things to be spelled out. So I was really pleased with Orange C. It has a nice feel, has relatively good "help", and the developer is quick on the draw.
|
Pelles C (last update 6-4-2009)
Pelles C is
"a complete development kit for Windows and Pocket PC" centered around
an optimizing C compiler based on
lcc
(not lcc-win32/64). Both Win32
and Win64 versions are available and are being actively maintained.
I have yet to try it out, but the integrated development environment
(IDE) screenshots on the website look pretty good. This is probably
a very good choice for people who want to start programming Windows.
Unlike lcc-win32/64, which is free for
personal use, but not for professional use, Pelles C is free for
both personal and commercial use since it is based on the original
lcc.
I have received several positive
comments on it via e-mail, an example of which (from 12-5-04)
is shown below (though I'm not sure why the need for a command
box should be seen as a drawback ;-).
...I find [it] very useful. It compiles very fast executables and
very tight code. Well-made project management completely
eradicates the need for a command box, and yes, it does PocketPC, WinCE,
and some other cell phones just fine (I have tested them on the
actual systems). It has everything from DOS16, which I used for some time
with Microsoft's QuickBASIC to make some fairly complex programs, to WIN64,
which I have yet to test...I have to say it's the best compiler I've ever used
(and I've used quite a few)...
|
TCC (TINY CC) (last update 12-29-2011)
TCC, authored by the very talented
Fabrice Bellard
(progenitor of FFMPEG), is
billed as small, fast, and safe. With a footprint under 1 MiB, the entire
0.9.25 win32 tcc distribution (exes, headers, lib files) fits onto a floppy rescue disk.
You can also easily turn your C files into Linux scripts by adding
#!/usr/local/bin/tcc -run at the top of them.
TCC started as OTCC,
the smallest compiler ever written which can compile itself, winner of the
2002 International Obfuscated C Contest.
I included TCC in my 2011 Win32/64 C Compiler Comparison
and also posted a couple of benchmarks comparing to gcc.
It lives up to its claim of being an extremely fast compiler,
but there are obvious trade-offs. The executable performance is not as good as
MinGW, nor are the error messages nor the level of Windows support
(various less common Windows headers are missing from the Win32 distro). Still,
with some minor mods to my code and to the TCC Windows header files
(I was able to copy some of the MinGW
windows headers), I was able to compile 350K lines of C code, including a lot of
Windows-specific code, in a matter of minutes.
That in itself is a remarkable achievement considering
the size of the TCC distribution.
I don't know how I missed listing TCC for the last seven years. I am embarrassed.
If you think TCC is cool, check out other links on Bellard's site,
including a javascript version of Linux which
runs in your web browser, a javascript scientific
calculator, and a bootable version of TCC.
Watcom (last update 5-24-2012)
Open Watcom C/C++ and Fortran is
up to version 1.9 (June 2010)
with support for DOS, Win32, Linux, and O/S 2.
Watcom is not a high-performance compiler compared to, say, Microsoft, Mingw/gcc,
or Intel, but it has an easy-to-use installer package and comes with some nice
developer tools. If you are a novice programmer just
looking to get started, you may want to give it a try.
Feedback on it would be welcome.
An excellent resource for Watcom's compiler is
Paul Hsieh's
Watcom C/C++ page.
|
| |
Commercial Compilers |
Embarcadero (was Borland) (last update 7-25-2009)
I used Borland back in my MS-DOS days when they made Turbo C, and
that compiler was ahead of it's time--small footprint, fast,
conformed to the latest ANSI standards, compiled everything flawlessly,
and had lots of handy library functions for DOS programmers. It was
only when I needed a clean 32-bit compiler that I switched to
DJGPP's GNU C (see DJGPP section) in the late 1980's and early 1990's.
Borland's compiler is now owned by
Embarcadero as of July 2008
and is called
C++Builder
(2009 edition as of July 2009).
There is a
FAQ page and a
product edition page. Prices for the professional, enterprise, and
architect editions are $900, $2000, and $3500, respectively.
A free version is still available--see the freeware compiler column.
Ch (last update 7-25-2009)
Ch (v6.1 as of July 2009) is a cross-platform, C/C++ interpreter from softintegration.com. It touts
itself as "an embeddable C/C++ interpreter for cross-platform scripting,
shell programming, 2D/3D plotting, numerical computing, and
embedded scripting."
I have not tried it, but the
user testimonials page
has some convincing endorsements. The standard edition is free for
personal and commercial use. The professional edition, which has
built-in plotting support, is $500. Ch supports Win32 and Win64 as
well as several other platforms (linux, Mac OS X, Solaris).
There are also several toolkits for numerical analysis and web programming.
CodePlay (last update 7-25-2009)
Founded in 1999, CodePlay continues to offer their
VectorC compiler
for Windows (v2.1) under their "Legacy Products" page. They have a
FAQ page and a
benchmark page for VectorC.
Though the benchmark page is somewhat dated (I should talk!),
it is interesting because it provides
full source code plus the compiled assembler code for all of the examples.
CodePlay also offers tools such as their
Sieve C++ system which layers on top of VectorC to
support multicore platforms.
CodePlay VectorC also supports the Playstation 2 platform.
The VectorC PC compiler has
several prices, including professional ($800) and special
($80), which is presumably targeted at students and/or amateurs.
Comeau (last update 7-25-2009)
Comeau Computing offers
a C++ front-end (v4.3.10.1 as of July 2008) which converts C++ to C, which is
then compiled by a separate back-end. Currently, the Win32 port supports
VC++ 7.0, Borland, Metrowerks, MinGW, lcc-win32 and Digital Mars backends.
Comeau's C++ front end is also available on a wide number of other platforms, though support
for Win64 is not mentioned, and many of the web pages seem a
bit dated. The license runs $50.
I have not tried it out.
Intel (last update 12-29-2011)
Intel now is naming their
compilers by year rather than version number, and they have all kinds of
software development tools for your to spend your money on depending on your target environment.
My most recent benchmark of Intel is my
2011 Win32/64 C Compiler Comparison.
Intel's compiler performs very well based
on SPEC CPU benchmarks.
Lcc-win32/64 (last update 6-4-2009)
Jacob Navia, through
Q Software Solutions,
now offers commercial
versions of lcc-win32 and lcc-win64.
The prices
run from 40 euros for the base system to 70 euros for the
full system.
The change log shows active development through 2009. I'm not
sure what the difference between
the commercial version of this product and the
the freely downloadable version is, but
it is pointed out in a couple of places that the free version is only
for private use.
Freescale (was Metrowerks) (last update 7-26-2009)
The CodeWarrior Development Tools which used to be
maintained by Metrowerks are now owned by
Freescale, and support for a Windows
version seems to have been dropped, though
googling codewarrior for windows seems to
come up with links where an older version can be downloaded for free.
Microsoft (last update 1-21-2012)
Microsoft offers their Visual C/C++ compiler
for free.
Their professional development environment for Windows is called
Visual Studio 2010 Professional. I can't tell at a glance what features Visual Studio Professional
comes with that the free
Visual Studio Express
does not have, but the cost is substantial--$800 to $1200
depending on what options you choose.
I benchmarked Visual C/C++ 2010 (the version that comes with Microsoft's freely downloadable SDKs) in my 2011 Win32/64 Compiler Benchmark.
PathScale (last update 7-26-2009)
The PathScale compilers (now owned by SiCortex)
aren't explicitly for Win32 programming, but they do
provide a high performance compiler suite for x64-based Linux systems.
They claim to be the "highest-performance 64-bit C, C++ and Fortran compilers for Linux-based environments,"
and their SPEC scores are very good.
Unfortunately, how to purchase of the Pathscale suite isn't obvious,
since SiCortex is a hardware vendor. They say they ship the PathScale
suite with their hardware, but don't seem to have a link for buying
it separately.
PGI (last update 7-26-2009)
The Portland Group (PGI) offers
a a compiler suite
for Win32/64, Linux x32/x64, and Mac OS X. They are on Release 9.0
as of July 2009. Commercial single-seat
prices are $420 for C++,
$700 for FORTRAN, and $990 for both. Academic pricing is also available.
|
|