编译* .cc文件时出现Gcc编译错误

时间:2011-06-07 08:21:17

标签: c gcc compiler-errors

我在Ubuntu环境中使用gcc编译器编写了一个简单的C程序。代码很简单。但是,当我尝试编译时,它给出了一个我无法理解的错误。这是代码和错误

# include <stdio.h>
int main() {
  enum mar_status {
    single,married,divorced
  };
  enum mar_status person1,person2;
  person1 = single;
  printf("%d\n",person1);  //line B
}

编译时出现以下错误

gcc enum2.cc
/tmp/cc6stgaW.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status

如果我在B行删除了printf语句,一切都很顺利。关于为什么编译失败的任何想法?

4 个答案:

答案 0 :(得分:4)

您正在使用gcc编译C ++代码? (.cc扩展名)

将文件重命名为enum2.c或使用g++进行编译。

答案 1 :(得分:2)

  

对内部运行时库函数的未定义引用(例如__gxx_personality_v0)也是将C ++目标文件与gcc而不是g ++链接的症状。

将文件扩展名从.cc或.cpp更改为.c将解决此问题。

答案 2 :(得分:1)

当你说:

时,你会混淆编译器
 gcc enum2.cc

它认为你正在编译C ++代码,但你是用gcc做的,它没有链接正确的C ++库。使用:

gcc enum2.c

答案 3 :(得分:1)

它运行良好。检查:http://ideone.com/bhjlf

我猜你的编译命令是错误的。