c,c ++文件扩展名问题

时间:2011-05-12 09:48:58

标签: c++ c compilation

我在ubuntu(10.04)上用c ++编写程序,并在我编译时将其保存为.cc文件

它有机会g ++ cat.cc它运行正常。代码工作正常没有问题。

但是当我使用gcc编译它时它会显示以下错误:/tmp/cc8aU82C.o :(。eh_frame + 0x12):未定义引用`__gxx_personality_v0' collect2:ld返回1退出状态

我的代码如下:

#include<stdio.h>
#include<stdlib.h>
struct man
{
    int a ;
    int b;
    void show(int x,int y);
}
};

int main()
{
    man m; 
    int c=50;
    int d;
    m.show(c,d);
    return 0;
}

void man::show(int x,int y)
{
    printf("%d",x);
}

现在有人能告诉我用gcc编译时会出现什么问题吗?

.cpp和.cc扩展名之间的确切区别是什么?如果它们与我们使用它们的原因相同?他们为什么存在?

3 个答案:

答案 0 :(得分:4)

如果使用gcc进行编译,则默认情况下不会链接C ++运行时,因此您将看到链接器错误,就像您看到的那样。 gcc和g ++都将编译带有.cpp和.cc扩展名的文件(以及我忘记的其他文件)作为C ++,以及那些扩展名为.c的文件。但最好是明确的并使用g ++来表达你的C ++代码和gcc for C.

答案 1 :(得分:0)

gcc是C编译器而不是C ++编译器,g ++是C ++编译器。

答案 2 :(得分:0)

它们的存在是因为有些人使用过它们。 : - )

使用g ++编译时,您说要将代码编译为C ++。然后扩展无关紧要。