By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,234 Members | 1,889 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,234 IT Pros & Developers. It's quick & easy.

undefined reference to '__gxx_personality_v0'

P: n/a
I have a small program, test.c. It runs OK. This is on Linux (kernel
2.6.8.1, GCC 3.4.1).

I decided to convert it to C++ before expanding it to a larger program. I
changed the filename to test.cpp and added

extern "C" {
}

around main and all the non-static subroutines. It compiles OK, but when I
link it, it says:

test.o (.eh_frame+0x11): undefined reference to '__gxx_personality_v0'

My program makes no reference to __gxx_personality_v0.

What do I need to do to get this program to link as a C++ program?

Thanks,
Allie
Dec 9 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Albert Oppenheimer wrote:
I have a small program, test.c. It runs OK. This is on Linux (kernel
2.6.8.1, GCC 3.4.1).

I decided to convert it to C++ before expanding it to a larger program. I
changed the filename to test.cpp and added

extern "C" {
}

around main and all the non-static subroutines. It compiles OK, but when I
link it, it says:

test.o (.eh_frame+0x11): undefined reference to '__gxx_personality_v0'

My program makes no reference to __gxx_personality_v0.

What do I need to do to get this program to link as a C++ program?


This is platform specific, but try compiling (and linking) with "g++"
rather than "gcc." Or, when you link, make sure you specify the C++
library (which gcc does automatically if you use g++ as your command
line rather than gcc).

If you have further questions, you'll get better help asking in a
platform-specific newsgroup.

Best regards,

Tom

Dec 9 '05 #2

P: n/a
Albert Oppenheimer wrote:
I have a small program, test.c. It runs OK. This is on Linux (kernel
2.6.8.1, GCC 3.4.1).

I decided to convert it to C++ before expanding it to a larger program. I
changed the filename to test.cpp and added

extern "C" {
}

around main and all the non-static subroutines. It compiles OK, but when I
link it, it says:

test.o (.eh_frame+0x11): undefined reference to '__gxx_personality_v0'

My program makes no reference to __gxx_personality_v0.

What do I need to do to get this program to link as a C++ program?

Thanks,
Allie


The __gxx part indicates that this is a g++-specific implementation
issue. The .eh_frame probably indicates that it is concerned with
exception handling, code for which may be automatically inserted for
C++ programs (but not for C). If so, you could disable exceptions with
a compiler flag or link in the proper symbols from a library that came
with your compiler (perhaps libstdc++?), which may not get pulled in
with your current compiler flags. As the other respondent said, any
follow-up should be directed to a GNU newsgroup see the FAQ for some
alternate newsgroups:

http://www.parashift.com/c++-faq-lit...t.html#faq-5.9

Cheers! --M

Dec 9 '05 #3

P: n/a
Hello Albert,

Albert Oppenheimer wrote:
I have a small program, test.c. It runs OK. This is on Linux (kernel
2.6.8.1, GCC 3.4.1).

I decided to convert it to C++ before expanding it to a larger program. I
changed the filename to test.cpp and added
This already enough to make it a C++ program. GCC will automatically compile
it as a c++ program because of the cpp extension.
extern "C" {
}

around main and all the non-static subroutines. It compiles OK, but when
I link it, it says:
It's not necessary. Remove the extern "C" stuff and try again, it should
compile and link fine.
You need the extern "C" only if you are calling a C function, like printf()
from a C++ module. If you would like to know more, google for "name
mangling" and you should find good explanations for it and what it's for.
test.o (.eh_frame+0x11): undefined reference to '__gxx_personality_v0'

My program makes no reference to __gxx_personality_v0.

What do I need to do to get this program to link as a C++ program?

Thanks,
Allie


hth Peter

Dec 9 '05 #4

P: n/a
Thanks, it linked and ran fine after I used g++.
Dec 9 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.