OK, my ld is fucked. I'll post some examples of how it deals with C++ code, along with full uname info to help. Code: [zenwalk] ~ > uname -a Linux zenwalk 2.6.24.2 #1 SMP PREEMPT Mon Feb 18 21:24:35 CET 2008 i686 Intel(R) Pentium(R) D CPU 2.80GHz GenuineIntel GNU/Linux [zenwalk] ~ > cat hello.cpp #include <iostream> using namespace std; int main() { cout<<"test\n"; } [zenwalk] ~ > gcc hello.cpp /tmp/cc75ncjf.o: In function `__static_initialization_and_destruction_0(int, int)': hello.cpp:(.text+0x24): undefined reference to `std::ios_base::Init::Init()' /tmp/cc75ncjf.o: In function `__tcf_0': hello.cpp:(.text+0x6b): undefined reference to `std::ios_base::Init::~Init()' /tmp/cc75ncjf.o: In function `main': hello.cpp:(.text+0x8e): undefined reference to `std::cout' hello.cpp:(.text+0x93): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /tmp/cc75ncjf.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status [zenwalk] ~ > Any suggestions?