This entire section is dedicated to development software for the creation or modification of C++ source code and programs. Most of what you will find listed is free and I have instructions on obtaining most of the free products (or direct downloads). A lot of people ask me where to get a free compiler. This is the answer to that question.

The items listed on the menu here are major operating systems, and you should already recognize which one you are using for C++ development. All of the compiler software is taught under the assumption that you are utilizing it within a console environment (I just use "console" for short).

If you think a particular product or additional explanation should be here, e-mail me.

Console

What Is It?

A console is an environment where you type commands at a prompt using your handsome digits and the keyboard. Display is on a mono-spaced text screen. It is known by different names, but they all mean the same thing: shell, console window, DOS box, terminal, etc. All of my instructions will be based on a command-line environment or console.

Why Use It?

You may be wondering why I teach people about C++ compilers with console commands, rather than those sleek, graphical, integrated development environments (IDEs). This is very simple. I use and have used many different operating systems and compiler software; and I would like to teach for everyone. IDE's are inconsistant and change often.

Exceptions

Sometimes I will tell you how to use the IDE of a particular compiler. There is no particular reason I describe the IDE of one compiler but not of another. I just do. Eventually, I'll also introduce text editing software that allows you to run console commands from within the editor. This makes it easy to edit source and compile within the same few seconds and keystrokes.

How Do I Use It?

If you've never used a system by which you type in commands, I'll give some brief instruction on doing so for each operating system. I highly suggest you learn as much as possible about the commands on your system and use them to your advantage. For Windows users, learn a bit of DOS (not the heavy stuff, just commands). For Be users, open up the terminal and try a bit of Unixy words. For Linux users, well ... if you're using Linux and you don't know your commands, I pity you!

Common Overview

Regardless of operating system, consoles always have a few things in common. In fact, once you get really good at one, it's usually a breeze to switch to another (unless your a biased bloke with extreme prejudice to other operating systems - like me :).

Being in a console mostly involves browsing the files of your computer; navigating it's file system. Rather than clicking on pretty little icons and seeing sleek windows of files and more folders, you get to view a dismal textual list of contents. At any one time, the environment is pointing to a particular directory (a folder is a directory, so don't start getting freaked now). This is called the current working directory (cwd).

It's like when you've opened a folder and you see the stuff in it? That folder you're looking at is the current directory. You won't constantly see the stuff there in the console though, you have to command it to list the contents. And instead of opening another folder using your mouse, you command the console to change the current directory.

Once you're in a particular directory (that means folder, remember? :) you can effect the files in it with your commands. So if you tell the console to delete a file, it will look in that directory for the file to delete; unless you specifically tell it to look in a different directory.

You have to get down the mentality of using a console. A console is a very dumb thing and it's like programming a computer from a lesser stand point. You are directly telling the computer to do something through the console. It will then reply with what it has done or what it has tried to do and the outcome of it; if it's polite :).

Speed Demon

If you have a love of programming, then you may eventually find great possiblities with the console. It's not as archaic as it sounds. It continues to prosper because of it's unrivaled speed. Once you've become familiar with it and it's powers, you'll be doing things much quicker; not just in the console but with the rest of your applications and computer as well. I think it has to do with effectively using your keyboard. Yes, it wasn't just born to whip out boring school reports and be the laughing stock of mice everywhere -- it can be a supreme weapon of speed advantage.

Know Your Compiler

If you're going to get a compiler then you need to know what one is already, otherwise you won't be able to use it. In the past I have gotten one of two different "questions" from people who obtained compilers but didn't really know what to do with them:

The answer to both these questions is not, usually, a failure of the software at all, but your level of knowledge. Neither of these questions would be asked if you knew what a compiler is and isn't. The bottom line: make sure you know what a C++ compiler is and what it does before getting one and absolutely before asking me a question about it.