Friday, January 19, 2007

 

Free Windows Software Development Tools

I'm planning to learn C++ by writing a simple game. Getting the initial setup and learning the tools is very important. Here are a few different free configurations for Windows to boot strap a C++ development. I'm baised towards UNIXie tools.

GUI Interface
1. Bloodshed C++ IDE
This includes the editor, compiler tools, and debugger. The compiler tools are GNU tools and it appears to be integrated with CVS, but I haven't tried that feature yet.

Command Line Interface
1. VIM*
This is an updated VI with color. You can download kits to configure VIM for any programming language.
2. Cygwin
This is a UNIX bash shell so you can use the GNU tools directly from a BASH shell on you Windows machine.
3. GNU Tools
a. gcc - this include the compiler, assembler, and linker to turn your C++ code into an executable.
b. make - automate the build. This is a very tough tool to master, but easily enough to get started on just by copying one of the examples from the document.
4. Subversion** or CVS

*VI and Emacs are the defacto UNIX editors. You only need to choose one as all modern UNIX based machines will have both. Many UNIX users only know one such as myself.

**Subversion is suppose to be an updated version of CVS. I tried to download the source, but it always fails. Maybe the project is running low on funds and can't affort too many downloads.

You may ask yourself why anyone would use the Command Line interface when nice GUIs are available? Flexibility, stuborness, and legacy(code and developers). I perfer to use a GUI IDE to manage my personal projects, but toolchain gurus like to hack the Makefiles. On large projects, it's actually easier to use command line interface because you can write scripts. The scripts can compile multiple projects, check for errors, generate reports, and run a regression test suite. Also, on large embedded projects, there may be multiple CPUs on a single platform to compile code for and each uses a different toolchain. I'm not aware for an IDE that handles this situation as gracefully from a configuration management's POV as its command line counterpart.

2nd reason to use Command line is I got some an old setup from a previous job that's running a commerical RTOS. I'm not sure if the hardware still works or I still remember how to setup the build environment, but it'll be interesting to rewrite the driver in C++ if I was demented enough.

Thinking in C++: 2 volumes and it seems to have good reviews on Amazon. I read a bit of this and have been writing code as I go along. I believe the author made a mistake in regards to using volatile for mutli-threaded programming. This is incorrect. Nothing in the C/C++ standard to my understanding supports the multi-threaded model (such as ADA). This is handled by POSIX standard libraries and probably some Microsoft libraries.

http://www.bluedonkey.org/cgi-bin/twiki/bin/view/Books/VxWorksCookbookCPP
This seems interesting for using C++ in an embedded environment. I'll save the link to check out later.

Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?