Other Free C/C++Development Tools


Links to Other Free C/C++ Development Tools

(Under Construction)

A compiler and development environment is all you need to learn C and C++ and to develop simple programs in these languages.

Beyond that, if you want to develop large and complex sofware systems however, you will find that other tools will make your job easier. The free development tools below have been selected for their usefulness, ease of use, and the quality of their implementation.

Memory Leak Detection:
C and C++ programmers must always be on the alert for the possibility that their programs present "memory leaks", i.e. they fail to release to the operating system memory which is no longer used. The "footprint" of these programs keeps on growing the longer they are used, they hog more and more memory resources, fragment the available memory and slow down the system.

With MemProof you can check relatively easily whether your program leaks, and more importantly where it leaks. MemProof is free, and it supports many compilers. Look it up at:

        http://www.automatedqa.com/products/memproof.asp

Version Control:
Releasing successive versions of a program can create problems.
- How do you track down changes (and see when a particular feature stopped working well and why)?
- Who did the change (and can therefore tell you why it was made)?
- How do you get back to a previous version of the sofware?
- How do you keep together the various versions of the files that were working together at the time of a release, when you have kept on working on some of these files ever since?

The answer is "Version Control". Off-the-shelf tools for version control have been used on industry-grade operating systems (like UNIX) for a long time. They have taken longer to appear on Windows.

One such tool has been released recently. It is free for individual developers, and relatively cheap for teams (although not in low-value currency countries).  It is called CS-RCS (Component Software - Release Control System).

       http://www.componentsoftware.com/csrcs/

Cross-Platform GUI (Graphical User Interface):

To develop Windows programs, you can use the "native Windows interface" (using  mostly C), or use a variety of class systems (in C++) that make you more productive and enable the use of RAD tools (rapid application development). The best known of the those C++ Windows GUI systems is the MFC -Microsoft Foundation Classes (for which you will need to purchase Microsoft Visual C++). Inprise/Borland have their own system that comes vith Borland C++ builder, as have other vendors. All claim theirs is superior.

There is a problem though with all these proprietary systems: They tie you up to a vendor and to an operating system (Windows).

With the growth in popularity of alternative operating systems, you are likely to sooner or later want to capitalise on your past work by distributing your software on other platforms (Apple, UNIX, Linux, OS2, BeOs..), or to use libraries produced for another compiler system. If you have tied yourself to a proprietary GUI system, you might as well forget it. 

An alternative is to use a cross-platform GUI library for development. There are many around, proprietary and expensive (out of reach of most people in poorer countries, and out of reach for most students), or free and open-source. They offer C++ graphical class system which can be easily ported across operating systems... Simply re-compile (at least this is the theory).

The cost: Usually larger executables, and with some systems, the loss of the familiar look-and-feel of applications on particular operating systems, and the loss of some of the flexibility that development tied to a specific system offers.

One of the most solid such cross-platform GUI libraries, and one with possibly fewer of the disadvantages above is WxWindows. It is free, open-source, and supports most free compilers. Check it out at:

      http://www.wxwindows.org/


Windows Installer:

Click on file "setup.exe".
- The familiar setup screen comes up, allows you to select the installation directory, then the hundreds of files that make up your system are expanded into the proper directories.
- The user is presented with licence information, installation information, . . whatever you choose.
- A program icon is placed on the desktop, another into the Start->Programs menu.
- An "Uninstall" icon is made available to the user who wants to get rid of your marvelous software.

Such setup sessions are usually prepared with the help of  "installer" software. There are many such systems around. One which is simple to use is Install-Maker. Find it at   http://www.clickteam.com/InstallMaker/.

You can download the base version for free. The only associated obligation is to leave the additional publicity screen for the Install-Maker product that pops-up at the end of the installation.

Executable Packer:

Your program is too large to fit on a floppy? Are you running out of space on your web site? Compress your executable file. It can be shrunk to between 30% and 40% of its original size. Once compressed, it will load and run just as before.

Advantages: The file will load more quickly on networks and will use less bandwidth.

Disadvantages: Your program will (under Windows) use more computer memory during execution.

One of the best is UPX, the Ultimate Packer for eXecutables. You get it for free from http://upx.sourceforge.net.

It is published as open source, works with Windows, Linux, Atari... executables. It has a good compression ratio, and does its job quickly.

Last revision: July 2001  -   Maintained by cutter@codecutter.net