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
- Edison Design Group produce a C99-compliant front-end licenced to many compiler vendors
- This comp.lang.c post of Jan 28 2005 by Greg Comeau anecdotally lists a few compilers not listed above
- Perennial's ISO C99 CVSA Validated Products List is linked to above for various compilers
- Sharath A.V maintains a C99 Conforming Compilers List
See also
- question 18.3 in the C FAQ
- the Compiler Resources page at bloodshot.net (also lists compilers other than C)
- Free C/C++ Compilers and Interpreters at thefreecountry.com