Jump to: navigation, search

Introduction

This page lists:

  • compilers available for the common platforms, focussing on freely available compilers (non-comprehensively)
  • compilers that fully implement C99, or that at least claim to (as comprehensively as possible)
  • switches or other means of invoking each compiler in standards mode (non-comprehensively).

This page's sister lists C resources:IDEs and editors.

Free C compilers

The sense of free here is financial, however the usage terms vary. Licence details are provided where known.

Some of the compilers also include open, redistributable and/or modifiable source code (e.g. those licenced under the GPL) but that's not a requirement for inclusion in this list.

Some of the compilers include a full IDE (Integrated Development Environment) and some are simple command-line tools. Some of them are also C++ compilers. One (gcc) compiles many other languages.

The "Platforms" column is definitive only for Windows and Linux platforms - i.e. lack of mention indicates the compiler will not run on that platform - but may include details of other platforms too.

Name Platforms / IDE Licence C99?
Ch (C/C++ interpreter) Windows, Linux, Solaris, HP-UX, Mac OS X,FreeBSD [Free for commercial and non comercial use] Major C99 features supported
GNU Compiler Collection (GCC) Windows (but see notes), Linux and many others, no IDE GPL Partial
Cross-compiles for multiple platforms.  Requires Cygwin to run under Windows however Windows executables compiled in that environment are dependent on the Cygwin dll.  Includes a command-line debugger, linker and make tool.
Standards mode switches: -ansi -pedantic or -std=c89 -pedantic (C89) -std=c99 -pedantic (C99).  It's also useful to enable warnings per these switches: -W -Wall
==>MinGW / MinSYS Windows, no IDE GPL and Public Domain As for GCC (?)
Based on GCC; includes a collection of header files and import libraries for Windows that allow independent Windows executables to be produced (vs those dependent on a Cygwin dll). This implementation has a significant long standing bug in that the compiler and library use different representations for the "long double" type. This is a bug in the MinGW implementation rather than a bug in gcc of the Microsoft C library.
Standards mode switches: as for GCC (?)
==>DJGPP DOS, no IDE GPL As for GCC (?)
A port of GCC and related tools for 32-bit DOS.
Standards mode switches: as for GCC (?)
Tiny C Compiler (TCC) Windows (but see notes), Linux, no IDE LGPL "heading torward full ISOC99 compliance"
Its website in news item 17 July 2005 claims support for windows targets; TCC can reportedly be compiled for Windows using mingw and will run on Windows, supporting dll and exe targets.  The site also claims that TCC is much faster than GCC and lists some pretty neat features.
Standards mode switches: ?
TenDRA Linux, Darwin, FreeBSD, NetBSD, OpenBSD and several other Unix-based OSes; no IDE (?) BSDL and Crown License ?
Based on ANDF - Architectural Neutral Distribution Format, "a format designed to improve portability and distribution of software."
Standards mode switches: -Xs - per manual but unconfirmed - if you have compiler access please edit to confirm
Open Watcom Windows, IDE Sybase Open Watcom Public License Partial
Compiles for 32-bit Windows as well as 16 and 32-bit DOS and OS/2 targets, Windows 3.1 and Novell NLM.  Runs on DOS, OS/2 and all Windows versions.
Standards mode switches: ?
Digital Mars Windows, IDE Digital Mars License Agreement ?
Supports Win32, Win16, DOS16 and DOS32.
Standards mode switches: ?
Pacific C Compiler Windows, text-mode IDE Free for any use No
Supports MS-DOS
Standards mode switches: ?
lcc Windows, Linux, no IDE Ad-hoc Fair Use Licence ?
Designed to be retargetable; runs on and compiles targets for multiple platforms.
Standards mode switches: ?
==>LCC-Win32 Windows 95 and above, IDE (Windows 2000 and above) Free for non-commercial use; copyright Jacob Navia C99-compliant
Extends lcc beyond ISO C but supports a standard-compatible mode.
Standards mode switches: -ansic C99 conforming mode
==>Pelles C Windows, IDE As-is; free for any use / redistribution; parts under LCC's licence; more details in licence.txt of download. "Support for most C99 features."
Based on lcc.
Standards mode switches: "No, sorry, the C99 mode is always 'on'..."
Turbo C DOS, no IDE As-is for personal use only. None (C89/C90 support reportedly incomplete too)
Borland's well-regarded, lightweight compiler for DOS (released 1989; not developed since). Reportedly not quite conforming to C89/C90, but "close enough".
Standards mode switches: -A (?)
Borland C/C++ Compiler Windows, no IDE Specific licence terms aren't visible without creating an account and downloading the compiler ?
Descended from / related to Turbo C; also commercially available with an IDE included.
Standards mode switches: -A (?)
Intel C++ Compiler Windows, Linux, no IDE for Linux (Windows IDE?) Time-unlimited non-commercial use under Linux Time-limited evaluation use under Windows Some C99 support (from version 7.0)
Also commercially available.  Under Linux it's fairly compatible with GCC extensions and command-line options and it often produces faster code than GCC, however GCC can beat it in some areas.  Doesn't optimise well for AMD chips.  Be careful about the definition of non-commercial use in the Linux licensing.  Uses the Edison Design Group front-end.
Standards mode switches for Linux: -Xc or -ansi (C89/C90) -c99 or -std=c99 (C99)
Standards mode switches for Windows: -Za
Microsoft Visual C++ Toolkit 2003 Windows, IDE GPL.  You don't believe it?  OK, it's really a typical Microsoft EULA None, only C90
The C/C++ compiler as shipped in Visual Studio .NET 2003 Professional.
Standards mode switches: ?
Microsoft Visual C++ 2005 Express Edition Windows, IDE Specific licence terms not visible on website, but the FAQ describes free pricing for one year. None, only C90
From a standard C conformance point of view, probably not much different to the above compiler (IDE and extensions are a different matter).
Standards mode switches: ?

Commercial C compilers

This section lists commercial compilers not already listed with a free version above, with a focus on compilers that run under Windows or Linux and/or that conform to C99.

Name Platforms / IDE Licence C99?
VisualAge Compiler (IBM) AIX, select Linux distributions Commercial licence C99-compliant (from version ?.?)
Optimising.  Free 60-day trial for Linux version.
Standards mode switches: ?
XL C/C++ (IBM) AIX, select Linux distributions Commercial licence C99-compliant (all versions?)
The successor to the VisualAge compiler.  Optimising; supports some gcc extensions.
Standards mode switches: ?
Lund Multiprocessor Compiler PowerPC/AltiVec Commercial licence C99-compliant (from version ?.?)
Uses either the Dinkumware C Standard Library or the GNU C library (glibc).
Standards mode switches: ?
Sun Studio Sun Solaris on SPARC and x86/x64 Commercial licence C99-compliant (from version 9)
Standards mode switches: -xc99=all,lib
Cray C Compiler Cray Commercial licence C99-compliant (from version ?.?)
Optimising; supports a subset of gcc extensions.
Standards mode switches: Invoke as c89 (C89) or c99 -h stdc or cc -h c99 -h stdc or cc -h c99 -h conform (C99) - per manual but unconfirmed - if you have compiler access please edit to confirm
MIPSpro™ ANSI C Compiler IRIX™ on MIPS® processor-based SGI® systems Commercial licence C99-compliant (from version 7.4)
Standards mode switches: ?
Codemist Compilers / Norcroft C Aside from Norcroft C - the Acorn Computers ARM C compiler - this company's website claims many different compilers for many different chips including Intel; IDE availability not described Commercial licence None (partial?)
The company specialises in optimising ANSI C compilers, and especially innovative processors.
Comeau C/C++ Windows, Linux and many others, no IDE (?) Commercial licence Complete C99 support (EDG and Dinkumware validated by Perennial)
Uses the Edison Design Group front-end and the Dinkumware C Standard Library.  Supports Microsoft extensions.
Standards mode switches: ?
Byte Craft Limited Code Development Systems C compilers and tools for embedded systems including HC08, eTPU, PIC, Parallax SX. BCLIDE included. Commercial licence Partial
Byte Craft Limited develops cross-compilers for resource-constrained or specialized architectures.
MetroWorks CodeWarrior III Compiler Multiple platforms (but Intel x86 compiler and debugger technology recently sold to 3rd party); IDE included. Commercial licence None (partial?)
The IDE and associated technology for enabling development across diverse platforms - including embedded - is the focus of this company's technology.
Standards mode switches: ?
Power C DOS 2.0 or later; from 8088 to the "latest" (webpage wording) Pentium processors. Commercial licence - was US$19.95 excl. debugger at last check No
The accompanying manual is promoted as excellent; minimal resource requirements; optional components: debugger, library source with Power C assembler and Power C library manager, business math library.
Standards mode switches: ?

Apple-only C compilers

Some of the compilers in previous sections will run on Apple machines; the compiler(s) in this section will only run on Apple machines.

Name Platforms / IDE Licence C99?
SC and MrC, available as part of the Macintosh Programmer's Workshop Apple Macintosh only - Mac OS 7.x/8.x/9.x; supports both 68K and Power Macintosh system. Licence not described but compiler is freely downloadable No
Standards mode switches: ?

Other C99 compliance notes

See also

Personal tools