使用gcc 未定义引用`__gxx_personality_v0′

可能重复:
什么是__gxx_personality_v0?

我已经在编译C ++代码的上下文中看到了这个问题。 但是我要编译 C代码并继续收到此错误。 我被禁止使用“-lstdc ++”作为解决此gcc问题的方法。 如何更改我的代码以使其正常工作以及为什么会出现此错误?

我的简化代码:

//this is main.cpp #include  int main() { char ch[3]; ch[0] = getc(stdin); ch[1] = getc(stdin); ch[2] = '\0'; printf("%s\n", ch); return 0; } 

我的编译命令是:

 gcc main.cpp 

使用g++ – 因为您的文件后缀为.cpp或将文件重命名为.c并保持命令行不变。 使用gcc 4.4.5在Debian 6.0.5上测试。

男子gcc说:

C ++源文件通常使用后缀.C,.cc,.cpp,.CPP,.c ++,。cc或.cxx; C ++头文件通常使用.hh,.hpp,.H或(对于共享模板代码).tcc; 和预处理的C ++文件使用后缀.ii。 GCC识别具有这些名称的文件并将它们编译为C ++程序,即使您以与编译C程序相同的方式调用编译器(通常使用名称gcc)。