| Main | C & C++ Code Listing | Download | Site Index | Contact | Tell friends |


 

 

 

C/C++ Compilers/IDE Resources

 

 

 

 

 

There is many more free and commercial C/C++ compilers and tools. The following are some of the C/C++ compilers and the related tools other than ex-Borland, Microsoft Visual C++ and GCC/G++. Depend on your target platform and the applications that you are going to develop whether it is for enterprise, industrial, embedded such as in mobile devices or just a simple standalone applications, the most useful feature may be the Integrated Environment Development (IDE) that include all the C/C++ development tools such as codes validation, ISO/IEC C/C++ standard conformance (to solve the portability issue) and optimization for performance. Compared to other programming languages, the supports for C/C++ are very extensive. For C++0X (latest is C++11) compilers support comparison can be found at wiki.apache.org. You should take note regarding the C/C++ standard compliance compiler/IDE and your target platform before choosing compiler/IDE. Users that want to use C89/C99/C11 standards support using Visual Studio C++ (VC++), you may want to read the following article by Herb Sutter.

 

 

 

 

 

 

 

 

CLang project The C, C++, Objective C and Objective C++ front-end for the Low Level Virtual Machine (LLVM) compiler.

Pelles C

A complete C language development kit for Windows. It contains among other things an optimizing C compiler, a macro assembler, a linker, a resource compiler, a message compiler, a code signing utility, a make utility and an install builder.

It also contains an integrated development environment (IDE) with project management, debugger, profiler, source code editor, and resource editors for dialogs, menus, string tables, accelerator tables, bitmaps, icons, cursors, animated cursors, animation videos (AVI's without sound), versions and XP manifests. Enhanced with support for C99 and C11, a global optimizer, a new register allocator, a function inliner, intrinsic functions, and many Microsoft C extensions.

NetBeans A free, open-source Integrated Development Environment (IDE) for software developers. You get all the tools you need to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as C/C++, PHP, JavaScript, Groovy, and Ruby...

Eclipse / MyEclipse

This is a C/C++ Development Tools (CDT) developed by open source community. It is C and C++ Integrated Development Environment (IDE) for the Eclipse platform. The functionalities include:

 

  1. C/C++ Editor (basic functionality, syntax highlighting, code completion etc.)

  2. C/C++ Debugger (APIs & Default implementation, using GDB) .

  3. C/C++ Launcher (APIs & Default implementation, launches and external application).

  4. Parser.

  5. Search Engine.

  6. Content Assist Provider.

  7. Makefile generator and many more…

 

One of the useful Eclipse’s how-to can be found at IBM’s Developerworks. Eclipse also provides IDE and tools for other programming and scripting language such as Java and PHP.

Digitalmars

C and C++ Compilers for Win32, Win16, DOS32 and DOS. Claimed as fastest compile/link times and having many good features. Digitalmars also introduced the D programming language to overcome some of the pitfalls in C/C++ as claimed.

 

“…The software industry has come a long way since the C language was invented. Many new concepts were added to the language with C++, but backwards compatibility with C was maintained, including compatibility with nearly all the weaknesses of the original design. There have been many attempts to fix those weaknesses, but the compatibility issue frustrates it. Meanwhile, both C and C++ undergo a constant accretion of new features. These new features must be carefully fitted into the existing structure without requiring rewriting old code. The end result is very complicated - the C standard is nearly 500 pages, and the C++ standard is about 750 pages! C++ is a difficult and costly language to implement, resulting in implementation variations that make it frustrating to write fully portable C++ code.

C++ programmers tend to program in particular islands of the language, i.e. getting very proficient using certain features while avoiding other feature sets. While the code is usually portable from compiler to compiler, it can be hard to port it from programmer to programmer. A great strength of C++ is that it can support many radically different styles of programming - but in long term use, the overlapping and contradictory styles are a hindrance.

C++ implements things like resizable arrays and string concatenation as part of the standard library, not as part of the core language. Not being part of the core language has several suboptimal consequences.

Can the power and capability of C++ be extracted, redesigned, and recast into a language that is simple, orthogonal, and practical? Can it all be put into a package that is easy for compiler writers to correctly implement, and which enables compilers to efficiently generate aggressively optimized code?

Modern compiler technology has progressed to the point where language features for the purpose of compensating for primitive compiler technology can be omitted. (An example of this would be the 'register' keyword in C; a more subtle example is the macro preprocessor in C.) We can rely on modern compiler optimization technology to not need language features necessary to get acceptable code quality out of primitive compilers…”

OpenWatcom

“…The open, multi-target Integrated Development Environment. The IDE allows you to easily edit, compile, link, debug and build applications for 16-bit systems including DOS, OS/2 1.x, and Windows 3.x , as well as 32-bit systems including extended DOS, Win32 (Windows NT/2000/XP and Windows 95/98/Me), OS/2, Novell NLMs, and Windows 3.x (Win32s and Win386). Projects can be made up of multiple targets which permit a project to include EXEs and DLLs. The IDE produces makefiles for the project which can be viewed and edited with a text editor. The IDE is hosted on Windows or OS/2…”

Comeau C/C++

“…Comeau C/C++ is a command line driven C and C++ compiler that generates platform specific and C compiler specific C as its object code (the generated C code won't work on another platform, as it is CPU, OS and C compiler specific, and furthermore, it is not standalone). It then transparently invokes a particular C compiler that we've specifically ported it to (again, it won't work with one we haven't ported it to -- such porting must be done by Comeau since particulars must be coded into the compiler and library itself). Note closely that this is not preprocessing, but compiling. The Comeau C/C++ front-end first does full "C-style" preprocessing (#include, #define, etc.), as usual. That results in a normal translation unit, upon which Comeau C/C++ then does normal and full syntax, semantic and error checking. Next, the input C++ program (or C program in C mode) is translated into a machine independent intermediate language (IL), as is usually done by compilers. So, in effect, the original C++ (or C in C mode) source code is effectively gone at this point.

For its code generation phase, Comeau C/C++ only considers this intermediate form (IF). It then processes the IF, and in that process the code generator produces platform specific C language source code from the IF. Note then that a C compiler is needed only for machine dependent native object code generation (as noted above, it must be a C compiler we've ported it to for a particular CPU and OS). The C compiler provided by your UNIX manufacturer (or those we mention for non-UNIX ports) will work with the Comeau C/C++ front-end on the respective platform you have purchased Comeau C/C++ for, as only those have been tested and integrated together. A list of which C compilers are required is provided above. Since the generated C code is at least CPU, OS, and C compiler specific, using another C compiler requires a custom port from Comeau…”

You can try the C/C++ online compiling using the Comeau C++ 4.3.3.

Trolltech C++/Qt/Qtopia

Qt is a complete open source C++ application framework, including a class library and tools for cross-platform development (Windows, Linux/X11 and Mac OS/X) and Qtopia is a comprehensive C++ GUI application development platform for mobile and embedded devices powered by Linux. You can see a list of customers who develop world class product that used these tools.

IBM

C and C++ Compilers that specific to the application development for IBM products. Also available the VisualAge C++.

distcc

A free distributed C/C++ compiler.

“…distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile.

distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. They can even have different processors or operating systems, if cross-compilers are installed.

Just wanted to drop you a line to say that we are now using distcc at work and it is excellent. We have a rack of opteron machines that we use for computational tasks and we are now using them as a compile farm to compile our ~1MLOC C++ tree (which can take an hour on a single CPU to recompile if we change certain header files). We tried using Sun's grid engine to do this (we already use it to schedule our computational jobs), but the combination of its polled operation and the overhead of NFS led to little improvement (and greatly stressed our network). With distcc compile times are way down and my productivity has greatly improved; the two best features for me are its low impact on the network and its simplicity. distcc is developed on GNU/Linux, but has been reported to work on other systems including FreeBSD, NetBSD, Darwin, Solaris, HP-UX, IRIX, Cygwin and BSD/OS…”

MinGW

“…MinGW ("Minimalistic GNU for Windows") refers to a set of runtime headers, used in building a compiler system based on the GNU GCC and binutils projects. It compiles and links code to be run on Win32 platforms... providing C, C++ and FORTRAN compilers plus other related tools. If you see references to "mingw32" instead of "MinGW", they are referring to the same compiler system. The project's name changed from mingw32 to MinGW is to prevent the implication that MinGW will only works on 32 bit systems (as 64 and higher bit machines become more common, MinGW will evolve to work with them). MinGW uses the Microsoft runtime libraries, distributed with the Windows operating system. Unlike other ports of GCC to Windows, the runtime libraries are not distributed using Gnu's General Public License (GPL). You, therefore, do not have to distribute your source code with your programs unless, of course, you use a GPL library in your programs…”

Dev-C++ 5

“…Bloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses MinGW port of GCC (GNU Compiler Collection) as its compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler…”

SourceBoost IDE

“…A development environment to develop code for Microchip (PIC) and Scenix (SX) processors. It includes C, C++ and Pascal compilers (including the next generation C compiler BoostC) and supports other tools like MPASM (from Microchip) and Picc Lite C compiler (from HI-Tech). SourceBoost IDE works under MS Windows 95/98/ME/NT/2000/XP…”

Sun Studio C/C++/Fortran Compilers

“…The Sun C, C++, and Fortran compilers include advanced features for developing applications on Sun Solaris SPARC and x86/x64 platforms. These compilers utilize a common optimizing backend code generator, and accept standard C, C++, and Fortran with extensions…”

PARADIGM C++ compiler

“…Paradigm C++ Professional includes real and protected mode compilers for embedded C and C++ developers. With Paradigm C++ Professional, you get both ANSI C and ANSI C++ compilers that work within the integrated development environment or from the command line if you choose to use makefiles. Also available the Paradigm C++ Lint utility that can be used to perform a high level of checking on C/C++ source files. Just select a C/C++ source file node in the Project view and look under the Special local menu item. Lint can be used to find dead definitions, unreferenced header files, and much more. This tool can tell you a great deal about your code and catch hidden problems you may not have realized…”

Compaq C and C++

Compaq's high-performance, multiplatform C and C++ compilers are based on the latest ANSI and ISO standards for OpenVMS, Tru64 UNIX and Linux Alpha.

Fujitsu-siemens

“…Powerful high-level programming language compilers, which translate programs directly into machine code. The C/C++ compilers support object-oriented programming with C++ on all platforms. C++ is a powerful, high-level programming language which supports the principles of object-oriented programming, such as encapsulation, inheritance and polymorphism. C++ is particularly suitable for developing reusable software building blocks in the form of class libraries. C/C++ permits selective use of the advantages of object-oriented programming. The C language set is also available…”

Intel C/C++ compiler

Includes C/C++ compilers for Windows, Linux and embedded application developments.

Tendra

The three clause BSD-licensed C and C++ compiler, with C++ STL support.

Anjuta DevStudio

A versatile IDE for C and C++, written for GTK/GNOME. Features include project management, application wizards, an onboard interactive debugger, and a powerful source editor with browsing and syntax highlighting.

Cygwin

A Linux-like environment for Windows.

“…A set of powerful tools to assist developers in migrating applications from UNIX/Linux to the Microsoft Windows; platform. Cygwin delivers the open source standard Red Hat GNU gcc compiler and gdb debugger on Windows. In addition, it provides for a standard UNIX/Linux development environment on Windows including APIs and command shells. The Cygwin.dll library, included with Cygwin, delivers the interesting subset of UNIX SVR4, BSD, and POSIX APIs to enable quick ports of UNIX/Linux applications to the Windows platform…”

 

 

 

 

 

 

 

 

 

 

 

Other C/C++ Related Tools

 

 

ChScite IDE

Ch IDE. Originally the Ch, an embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical computing, and embedded scripting. ChScite IDE allows you to edit, parse, and run C, Ch and C++ code within the IDE with the user interface in the local language such as German, Chinese, and Korea. It supports ISO C standard (C90), major new features in C99, classes in C++, POSIX, X/Motif, Windows, OpenGL, ODBC, GTK+, C LAPACK, CGI, XML, 2D/3D graphical plotting, advanced numerical computing, and shell programming. C/Ch/C++ allows users to use one language, anywhere and everywhere, for any programming tasks.

Green Hills Software

Provide optimizing C, C++/Embedded C++, Ada 95, and FORTRAN compilers to the embedded industry.

Systinet Server for C++

Provide solution for building C/C++ Web services as part of a Service-Oriented Architecture.

The ADAPTIVE Communication Environment (ACE)

The ADAPTIVE Communication Environment (ACE) is a freely available, open-source object-oriented (OO) framework that implements many core patterns for concurrent communication software. This cross platform software functionalities include event demultiplexing and event handler dispatching, signal handling, service initialization, interprocess communication, shared memory management, message routing, dynamic (re)configuration of distributed services, concurrent execution and synchronization.

Automated Flowchart Generator and Visualize Code Editor/Browser

Used to visualize and flowchart codes and support C, C++, VC++ (Visual C++ .NET) and other programming languages.

Gimpel Software

Provide C/C++ code validation and standard conformance. Its products, PC-lint and FlexeLint will check your C/C++ source code and find bugs, glitches, inconsistencies, non-portable constructs, redundant code, and much more.

Plumhall

C/C++ code validation and standard conformance tool. Provides tests for the more traditional components of your C++ library, like language support and iostreams classes, as well as the more recent additions, like the Standard Template Library (STL).

KDevelop

The KDevelop-Project was founded in 1998 to build up an easy to use IDE (Integrated Development Environment) for KDE. Since then, the KDevelop IDE is publicly available under the GPL and supports many programming languages.

C++ Boost Library This C++ library is part of the Standard C++ (ISO C++). It is supposed to be useful, and usable across a broad spectrum of applications
HP aC++

The HP C/aC++ Developer's Bundle provides the tools for compiling, linking, and debugging C and C++ programs. It also includes performance analysis tools, code analysis tools, and the HP-UX Developer's Toolkit. This product runs on HP-UX 11i v3, on the HP Integrity and HP 9000 systems. The HP C/aC++ Developer's Bundle includes:

The HP aC++ compiler is HP's implementation of the ISO/IEC 14882 Standard for the C++ Programming Language (the international standard for C++) and largely conforms to this standard.

Pro *C/C++ Precompiler

An Oracle Precompiler is a programming tool that enables the user to embed SQL statements in a high-level source program. The precompiler accepts the source program as input, translates the embedded SQL statements into standard Oracle runtime library calls, and generates a modified source program that you can compile, link, and execute in the usual way.

Elsa: The Elkhound-based C/C++ Parser A C and C++ parser. It is based on the Elkhound parser generator. It lexes and parses input C/C++ code into an abstract syntax tree.
Edison Design Group C++ Frontend It supports the C++ language of the ISO/IEC 14882:2003 standard, and many features from the ISO/IEC 14882:2011 standard. Under control of command-line options, the front end also supports ANSI/ISO C (both C89 and C99, and the Embedded C TR), the Microsoft dialects of C and C++ (including C++/CLI), GNU C and C++, Sun C++, the cfront 2.1 and 3.0.n dialects of C++, and K&R/pcc C.
Oracle Solaris Studio Oracle's advanced C, C++ and Fortran development tool suite, delivers the latest in compiler optimizations, multithread performance, and powerful analysis tools for the best application performance and reliability on Oracle Solaris, Oracle Linux, and Red Hat Enterprise Linux operating systems.

 

 

More information on C and C++ tools, libraries, utilities, SDKs and other related C and C++ 'creatures', open source or commercial can be found in C/C++ libraries blog.

 

 

 

 

 


 | Main | C & C++ Code Listing | Download | Site Index | Contact | Tell friends |