使用gcc未定义引用`__gxx_personality_v0'

时间:2012-05-29 14:50:49

标签: c gcc undefined-reference

  

可能重复:
  What is __gxx_personality_v0 for?

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

我的简化代码:

//this is main.cpp
#include <stdio.h>
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

2 个答案:

答案 0 :(得分:10)

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

进行了测试

答案 1 :(得分:0)

男人gcc说:

  

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