Which C++ compiler should I use?

I will be using following ebook to learn or revise C++:
C++ for Computer Science and Engineering, A step by step approach for learning C++ programming for beginners.   Author is Vic Broquard.

It uses a step-by-step
building block approach to gradiently learn how to solve computer science and engineering
problems in the C++ language.

Is Visual C++ 2008 Express Edition good enough?  I believe this is a free compiler.  Any reason I shouldn't use this compiler.

What other compiler choices do I have?  Can I use GNU compiler?  Where do I get it from?

If free compiler is good enough for my needs, that would be great.  Otherwise, I'll purchase one.

I have Intel i7 core PC running Windows 7.


Who is Participating?
phoffricConnect With a Mentor Commented:
I would definitely download Visual C++ 2008 Express Edition. I have it and it is valid for most beginner to intermediate C++ problems - a very nice learning tool.

But there are problems that are useful to learn in the linux world; multi-threading with a posix flavor is one example. For that I downloaded cygwin that runs on XP (and hopefully Windows 7). It comes complete with C and C++ compilers (as well as others). I use ddd debugger in that environment (but first you need to download Xming X-server).
>>  Can I use GNU compiler?
Just to clarify, the cygwin approach is using the GNU compiler. It will be useful in the long run to use both systems. I chose cygwin, for the moment, because it was easy to install and allegedly, I get a very close posix approximation. This is an operating system that runs on XP directly. With cygwin, I can run VS 2008 debugger and ddd debugger (which is just a GUI for the GNU dgb debugger) concurrently.

Alternatively, if you have a partitioned disk, you can load a unix OS (say, Ubuntu) onto the partition, and dual boot. But now you cannot run both OS concurrently.

Alternatively, you can download VmWare (I'll be doing that sometime), and then you'll be able to install Ubuntu on VmWare and run linux and Windows concurrently (I think).
For a true posix system, I'm told that I have to download Solaris OS.
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

As you advance and decide to specialize, if any of the free tools are deficient, then that would be a good time to make a purchase that suits your needs. For example, although MFC is apparently not going to be the utility of choice in the next decade, there is a great deal of legacy MFC code that needs to be maintained. If you decide to learn MFC, then the default VS 2008 Express download does not include it. (However, I believe I came across sites that explain how to integrate MFC into VS 2008.)

If purchasing, you used to be able to get a sizable discount if purchasing an academic license.
I gave you information on the two C++ compilers that I am using. But for a little more completeness, here is a comparison of Visual 2008 Express vs. Dev C++ (actually, wxDev-C++ which is an extension of Dev-C++):
trinitrotolueneConnect With a Mentor Director - Software EngineeringCommented:

adding to the information given above by the expert I would also suggest you take a look at Borland's compiler. Borland is a leading provider of compilers.

The C++ compiler they provide supports Windows 7 and better still they provide an IDE called Borland Builder similar to Visual Studio Express which includes the C++ compiler,  Boost library support, STL support and many more.


If you are interested only in their C++ compiler then you can take a look at the following link as well. I have used it and it is good for beginners.
>> IDE called Borland Builder
Is this IDE free?
Doesn't STL come with C++?
I downloaded boost directly from http://www.boost.org/

I noticed that a number of students use C++ Builder. I was guessing that it was required for their course (and maybe a discounted academic edition?). So, I also looked into it, but I saw different licensing plans, some which were not free. So, since I did not know of any benefit to C++ Builder, I went with Visual Studio C++.

Do you of any advantage of using Borland over Microsoft?
mrjoltcolaConnect With a Mentor Commented:
I recommend in this order:

1) Visual C++ (Express Edition or any Visual Studio versions) is, to me, the most productive on Windows and has best support for 64-bit. Visual Studio has very decent debugging speed and stability and the disassembler works well too, which is important to me.

2) Eclipse CDT (C++) works well, free, but doesn't perform as well as Visual C++ in debugging and lacks some features for Windows. I find it rougher than Visual C++. It requires Mingw or Cygwin, so the Eclipse in itself is not really the compiler, but is an IDE.

3) Embarcadero (Codegear was Borland) C++ Builder works well too, but lags behind Visual Studio in features, and always has some bug or two when I use it. No 64-bit support either. Plus I don't think they have a free edition. I prefer Visual C++ over it, but C++Builder's RAD drag/drop development for C++ is as close to .NET RAD as you can get for native code.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.