Tools

If you are on a Unix-like operating system, you probably have access to many awesome C programming tools. They are probably part of your distribution. Find them. Use them. The compilers and IDEs on this page are for Windows users like myself. Windows users who do not know much of the history of the C programming language should educate themselves before commenting in forums and the like. For all I know, the free Microsoft tools kick ass for Windows users, but I will be using mostly Windows ports of *nix compilers and debuggers. This is a personal choice. Use what you want. For a larger, but still incomplete list of compilers, see this Wikipedia entry.

On this page you will find the basic working tools for a C/C++ programmer. This list is purposely limited to free (as in free lunch) programming tools available to Windows users. All of the tools below work on my old Windows laptop and should work on newer hardware.


Compilers and IDEs

IDE: Bloodshed Dev-C++
I copied this text from the Bloodshed website:
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 it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.

This has become a popular programming environment and may be a better choice than Microsoft or Borland products.

Download Dev-C++ at the following link:
http://www.bloodshed.net/dev/devcpp.html

Now Orwell Dev-C++
http://orwelldevcpp.blogspot.com/


IDE: Code::Blocks
From the website:
Code::Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.
Finally, an IDE with all the features you need, having a consistent look, feel and operation across platforms.
Built around a plugin framework, Code::Blocks can be extended with plugins. Any kind of functionality can be added by installing/coding a plugin. For instance, compiling and debugging functionality is already provided by plugins!
Special credits go to darmar for his great work on the FortranProject plugin, bundled since release 13.12.
We hope you enjoy using Code::Blocks!
The Code::Blocks Team

http://www.codeblocks.org/


Microsoft Compilers
At one time Microsoft offered a good command-line compiler called the Visual C++ Toolkit as a free download. It was the same compiler shipped with Microsoft Visual C++ 6.0. It was a decent compiler without all the bloat. Even better than that, it came with some nice examples that taught me more about command-line compiling than any book ever has.


Sadly enough, I cannot find that download at the Microsoft website anymore. Now they are offering "Express" versions of Visual Studio products. I have not used any of these products, but you might want to check them out.


Visual Studio 2010 Products:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express




MinGW
MinGW is "Minimalist GNU for Windows". Go to the site and find out what that means. The Dev-C++ IDE is made to work with the MinGW GCC ports.


http://www.mingw.org/
http://mingw-w64.sourceforge.net/ For 32 and 64 bit programming. 
http://tdm-gcc.tdragon.net/ Also for 32 and 64 bit programming.


Debuggers

GDB
GDB is the Gnu Debugger. It's a command line debugger. It is also built into the Dev-C++ environment.

http://sourceware.org/gdb/
http://www.gnu.org/software/gdb/documentation/ Here's the documentation

Insight Cygnus Debugger
Insight is a GUI for GDB.
http://sourceware.org/insight/


Text Editors

Before IDEs were created, programmers coded with simple text editors. You can still use Windows Notepad or any other plain text editor to write your code. There are better options though.

Current text editors have many features you will find in advanced IDEs and are usually more customizable than a dedicated IDE. They also encourage you to understand how programs and projects work.

Here is a short list of text editors to look at.

SciTE          http://www.scintilla.org/SciTE.html
Crimson Editor          http://www.crimsoneditor.com/
Vim          http://www.vim.org/
PSPad          http://www.pspad.com/en/
jEdit          http://www.jedit.org/
Programmer's Notepad          http://www.pnotepad.org/
Notepad++          http://notepad-plus-plus.org/

No comments: