Recs.
Updated
The GNU Compiler Collection, used to compile packages from source code on C, C++, Objective-C, Fortran, Ada, Go etc.
The Code::Blocks IDE includes GCC
Specs
Pros
Pro Mature
GCC was first released in 1987 when it was called the GNU C Compiler, a couple of months after it was released it was extended to support C++ too. Nowadays it supports other languages than C or C++.
Having been in use and constant development for more than 20 years it has reached a state of maturity and stability. The fact that it's so old also means that there are countless resources out there for people who want to use it.
Cons
Recommendations
Comments
Flagged Pros + Cons
Con Bad for source-level optimization
Since GCC uses a lot of heuristics for increased performance (which is a good thing), it generally is not great when doing source-level optimization (such as loop unrolling). Even the smallest source code change can make GCC to generate a completely different output.