c++/4171: unresolved __gxx_personality_v0 in simple namespace example

Phil Edwards pedwards@disaster.jaj.com
Wed Aug 29 10:46:00 GMT 2001


The following reply was made to PR c++/4171; it has been noted by GNATS.

From: Phil Edwards <pedwards@disaster.jaj.com>
To: dpollard@scitools.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/4171: unresolved __gxx_personality_v0 in simple namespace example
Date: Wed, 29 Aug 2001 12:20:46 -0400

 On Wed, Aug 29, 2001 at 01:33:40PM -0400, dpollard@scitools.com wrote:
 > >Description:
 > Compiling this simple 3 line file results in the unresolveable
 > symbol __gxx_personality_v0.
 > 
 > >How-To-Repeat:
 > File Main.cpp:
 >   namespace Test { void test(); }
 >   using namespace Test;
 >   int main() { test(); }
 > 
 > % gcc -c Main.cpp
 > % nm Main.o
 >          U _ZN4Test4testEv
 > 00000000 ? __FRAME_BEGIN__
 >          U __gxx_personality_v0
 > 00000000 T main
 
 'U' means undefined, not unresolvable.  If you had called fopen() it
 would also should up as 'U' because fopen() is not defined in your code.
 You are compiling, not linking.
 
 __gxx_personality_v0 is defined in a library, like fopen and strcmp and cout
 and malloc and....  If you link your program in addition to just compiling
 it, the external symbols will be resolved.  Since you are writing C++,
 we recommend you use g++ (or c++) to do the linking step, rather than gcc:
 
     gcc -c Main.cpp
     g++ Main.o
     ./a.out
 
 
 Luck++;
 Phil
 
 -- 
 Would I had phrases that are not known, utterances that are strange, in
 new language that has not been used, free from repetition, not an utterance
 which has grown stale, which men of old have spoken.
                                      - anonymous Egyptian scribe, c.1700 BC



More information about the Gcc-prs mailing list