Here you will find a list of C and C++ development environments, both free and commercial. The list is further subdivided by platform.
Free Development Environments Edit
Before you shell out your hard earned cash to Borland or Microsoft (or anyone!) for a C or C++ development environment, I urge you to try out one of the free alternatives described below. They are all professional quality, and have been used to build countless successful commercial software applications.
Cross platform Edit
There are some IDEs that exist on a variety of platforms. Want to be able to work on your project under Linux at home and Windows at your school/work with the same IDE ? Look no further.
- Code::Blocks is a somewhat new player to the IDE scene but is quickly gaining on other players such as Dev-C++. Simple to use and powerful, it can work with a multitude of compilers including MinGW32, Intel's compiler, or the free Visual C++ 2003 compiler from Microsoft, among others. Available for Windows and Linux.
- As of April 2006, however, the version on the main page of the site is still the outdated release candidate 2 from October 2005. Drastic improvements have been made since then (rc2 doesn't even compile in an up-to-date linux distro, iirc) so you're much better of getting a nightly build from their forum.
- Eclipse + CDT
- Eclipse is a very modular open-source cross-platform IDE that work with multiple languages. CDT is a set of plugins to use it to develop and debug C/C++. Compiler isn't shipped, so if you want to use it under Windows, you'll have to install MinGW yourself. If you need a level editor, you may want to consider implementing it as a plugin for Eclipse to get advantage of its multi-document user interface, project management, and version control plug-ins. Plug-ins are easy to write thanks to the powerful integrated plugin development environment.
- GCC is not a development environment, but just a compiler. This is the standard compiler for Linux and BSD, and DJGPP and MinGW are ports of this compiler to DOS and Windows, and Cygwin also contains this compiler. This guide shows the basics of compiling code with GCC.
- Qt Designer
- The choice of anyone longing for Borland ease of use and beyond, Qt Designer is a solid cross-platform GUI application development environment for C++. It features an innovative form designer, a code editor with code completion capabilities, a cross-platform widget library and many other tools, all thoroughly documented. The Open Source Edition is for Free and Open Source application development only.
- Powerfull C++ IDE along with multi-plattform GUI-lib. Exploiting modern C++ template techniques to simplify GUI-developement without the need of code-generators. Standalone or bundled with MingW (under MS-Windows) other compilers can be integrated.
- Like Emacs, Vim is a powerful editor, seeking to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set. Vim can be used as a complete development environment for many programming languages. The Cream project also provide an easy-to-use configuration that simplifies development. Vim is cross platform, and is available for other OSes (including Windows).
- Yet another toolkit for cross-platform, cross-language GUI application development. Made in Japan with a lot of insight, but presents outdated appearance, lacks visual debugging and smart editing facilities.
Many free development environments for Windows rely on the excellent MinGW project for a compiler. MinGW (which stands for Minimalist GNU for Windows) provides a native Windows version of the popular GCC compiler from the Free Software Foundation.
Don't forget that for windows you can also use the Cross-Platform ones above!
- Borland Turbo C++ Explorer
- A stripped down version of Borland Developer Studio 2006, generates Win32 native executables. Its IDE is built by using VCL (Borland Visual Component Library), has its own GUI designer utilizing VCL. Free-of-charge version (Explorer) of it has a limitation which doesnt allow installing 3rd Party Components into IDE, but you can use included components to build and distribute your application without limitation.
- For those who prefer to work in a UNIX-like environment, Cygwin brings the power of UNIX to Windows. You can use all of your favourite GNU development tools within Cygwin, thereby enabling you to use the same compilation scripts across platforms.
- Dev-C++ is a very popular, mature and open-source IDE written in Pascal. You can download it with MinGW already installed, or you can download a stripped down version and install the MinGW compiler on your own. There is an extension of Dev-C++ called wx-Dev-C++. This program helps you to create Dialogs and Frames for wxWidgets visually. There was also a Linux-Version once, but its development didn't get very far.
- A 'C' IDE, compiler and debugger for Windows. Free for non-commercial use.
- MinGW Studio
- MinGW Studio is a freely (as in free beer, no open source) available light-weight, yet full-featured C/C++ IDE. Unfortunately it's not being developed anymore.
- MSYS is a Minimal SYStem developed by the makers of MinGW. It is quite similar to Cygwin, as it is a UNIX-like environment for Windows. However, it's a little lighter weight than Cygwin and is designed to work well with MinGW.
- Open Watcom
- Open Watcom is a cross platform C/C++ compiler with a rich collection of tools, and it's free. It comes with a simple IDE. The IDE is old fashion by today's standards but it has the advantage of being very light weight.
- Visual-MinGW is still in its infancy, but is already quite usable. A very nice light-weight IDE, designed specifically with MinGW in mind.
- Visual C++ 2005 Express Edition
- A stripped down version of Visual Studio 2005, targeted specifically at students and hobbyists, and supporting only the C++ language (Express Editions supporting other languages are also available). All of the Express Editions of Visual Studio seem to be aimed at people writing managed code for the .NET 2.0 VM, but the C++ version can also generate native executables with the installation of the Microsoft Platform SDK (actually, it can compile console-only programs without the SDK, but not win32 apps). Of the features stripped out of the Express Edition of VC++ the ones probably of the most interest to game programmers are the missing 64-bit compiler, the missing compiler optimizations (such as profile-guided optimization, but it does include other optimizations), the missing MASM assembler (MASM8 downloadable separately), and the inability to create or compile MFC apps (also, the included GUI designer can only generate code which uses .NET's Windows Forms).
Every Linux distribution will come with the GCC compiler, and the assorted GNU development tools. If you're comfortable working with source code as raw text, then GCC is all you'll need. But if you prefer to work within an IDE, read on.
- Anjuta is a versatile Integrated Development Environment (IDE) for C and C++ on GNU/Linux. It mainly targets GTK for User Interface development.
- Emacs is the mother of all text editors, but to call it simply a text editor is a massive understatement. Emacs can be used as your C or C++ development environment, and its flexibility and scriptability enable you to do pretty much anything you could conceive of.
- KDevelop is included with many modern Linux distributions, and is a full featured C/C++ development environment including support for gdb (debugger), valgrind (finds memory management problems), Doxygen (creates documentations automatically), cvs, svn... It also supports many other programming, scripting and markup languages. In recent versions, KDevelop includes an Dialog Editor called KDevelop Designer, which is a modified version of QT Designer that includes some KDE-specific Widgets. Since KDE is in the process of being ported to Windows and Mac OS X, KDevelop will someday also run on those two platforms natively. It already does support cross compiling so you can compile Windows applications in Linux (or ppc binaries on a x86).
MacOS X Edit
MacOS X is actually a UNIX-like operating system. Yes, it sure looks pretty and flashy, but underneath it all is BSD. MacOS X comes with GCC, along with the standard suite of GNU development tools.
- Xcode is available to you on your MacOS X CD-ROMs, and can also be downloaded from Apple's website (though a free sign-up is required). Xcode is an excellent IDE for C and C++, and if you're working from a Mac, you might as well take advantage of it!
If you like DOS games, why not make some? DOS isn't dead!
- The excellent DJGPP compiler, along with lots of other DOS programming information can be found here. DJGPP works well with the popular RHIDE development environment and is also compatible with Allegro: A great open-source multi-platform game programming library, which is even easier to use than DirectX! (Graphics libraries and source code examples for DJGPP and Allegro can be found here.)
Commercial Development Environments Edit
- Borland C++ Builder
- A solid C++ development environment, with plenty of history.