c ,c++文件扩展名问题
我在 ubuntu (10.04) 上用 C++ 编写了一个程序,并将其保存为 .cc 文件,当我
使用 g++ cat.cc 编译它时,它工作正常。代码工作正常没有问题。
但是当我用 gcc 编译它时,它显示了以下错误:/tmp/cc8aU82C.o:(.eh_frame+0x12): undefined reference to `__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 扩展名与我们使用它们的原因相同,那么它们之间的确切区别是什么?它们为什么存在?
I write a program in c++ on ubuntu (10.04)and saved it as.cc file when i complile
it wit g++ cat.cc it work fine . There is no problem the code is working fine.
but when i compile it with gcc than it show me an error which is following :/tmp/cc8aU82C.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
my code is following :
#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);
}
Now can anybody tell me what happens wrong when i compile it with gcc?
What is the exact difference between .cpp and .cc extension if they are same than why we use them ? why do they exist ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用 gcc 进行编译,则默认情况下不会链接 C++ 运行时,因此您将收到与您所看到的类似的链接器错误。 gcc 和 g++ 都会将带有 .cpp 和 .cc 扩展名(以及我忘记的其他扩展名)的文件编译为 C++,而将带有 .c 扩展名的文件编译为 C。但最好是明确地在 C++ 代码中使用 g++,海湾合作委员会为C。
If you compile with gcc, the C++ runtime is not linked in by default, so you will get linker errors like the one you are seeing. gcc and g++ will both compile files with the .cpp and .cc extensions (and others which I have forgotten) as C++, and those with a .c extension as C. But its better to be explicit and use g++ fror your C++ code and gcc for C.
gcc是C编译器而不是C++编译器,g++是C++编译器。
gcc is C compiler not C++ compiler, g++ is the C++ compiler.
它们的存在是因为有些人使用了它们。 :-)
当您使用 g++ 编译时,您表示要将代码编译为 C++。那么扩展就无所谓了。
They exist because some people have used them. :-)
When you compile with g++ you say that you want to compile the code as C++. Then the extension doesn't matter.