It looks like you may have forgotten to define (provide an implementation for) your destructor. Thanks, Lyle -----Original Message----- From: gcc-help-owner@xxxxxxxxxxx [mailto:gcc-help-owner@xxxxxxxxxxx] On Behalf Of learning c++ Sent: Sunday, September 12, 2004 2:04 AM To: gcc-help@xxxxxxxxxxx Subject: collect2: ld returned 1 exit status Hi, everyone: I compiled a program and the result is: Expr::~Expr [in-charge]() collect2: ld returned 1 exit status In my program, I defined the a class "Expr" and constructor "Expr" class Expr { int val1; int val2; char op; static int value(char c); public: Expr(string const&); int operator () () const; void print(ostream& useStream) const; ~Expr(); }; _________________________________________________________________ Add photos to your messages with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail