Erreur de compilation "Symboles non définis" sur l'osx

Je suis en train d'essayer de sortir un très simple programme cpp sur osx juste pour me familiariser avec la plateforme osx, donc je suis très surpris de rencontrer un message d'erreur.

Voici le code:

#include <iostream> 
using namespace std; 
int main() { 
  cout << "Hello, world!" << endl; 
  return 0; 
}

Je compile en exécutant

gcc -Wall hello.cpp -o hello

Puis-je obtenir ce 'undefined symbols' message:

Undefined symbols:
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
_main in ccA9oElQ.o
"std::ios_base::Init::Init()", referenced from:
__static_initialization_and_destruction_0(int, int)in ccA9oElQ.o
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const", referenced from:
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned long) const", referenced from:
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
"___gxx_personality_v0", referenced from:
std::__verify_grouping(char const*, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in ccA9oElQ.o
_main in ccA9oElQ.o
___tcf_0 in ccA9oElQ.o
unsigned long const& std::min<unsigned long>(unsigned long const&, unsigned long const&)in ccA9oElQ.o
__static_initialization_and_destruction_0(int, int)in ccA9oElQ.o
global constructors keyed to mainin ccA9oElQ.o
CIE in ccA9oElQ.o
"std::ios_base::Init::~Init()", referenced from:
___tcf_0 in ccA9oElQ.o
"std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)", referenced from:
_main in ccA9oElQ.o
"std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))", referenced from:
_main in ccA9oElQ.o
"std::cout", referenced from:
_main in ccA9oElQ.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Je ne sais pas si c'est lié: j'ai à la fois xcode 3 et xcode 4 est installé sur mon MBP

Voici les informations de version:

$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

Système d'information

$ uname -a
Darwin mbp002.local 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 i386

source d'informationauteur Anthony Kong