0
点赞
收藏
分享

微信扫一扫

[linux]undefined reference to `__gxx_personality_v0'


linux程序

 

#include 
#include 
#include 
int count=0;
void ctrl_c_count(int);
int main(void)
{
 int c;
 void (*old_handler)(int);
 old_handler=signal(SIGINT,ctrl_c_count);
 while((c=getchar()!=' '))
 ;
 printf("Ctrl_C count=%d ",count);
 signal(SIGINT,old_handler);
}
void ctrl_c_count(int i)
{
 printf("Ctrl_C ");
 count++;
}

这个程序的功能是研究 signal函数的应用

signal 函数是用于设置信号 量的处理函数为自定义的。

SIGINT是用户在终端上按下 ctrl+c的而产生信号量

它的系统默认的处理函数为终止正运 行的进程

现 在把它改成按 ctrl+c后,是全局变量 count加 1的操作

当用户在终端输入回车后该进程结束。

且又把 SIGINT的处理函数为默认的。

 

当把上述程序保存为 test.cpp时 ,注意这里保存的文件格式为

利用

产 生如下错误

/tmp/ccGsoxH2.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'

解决方法用

为什么会出现这个错误:是因为你用 gcc编译 .cpp文件 .按系统默认 .cpp文件是 c++的文件格式

另一个方法是用 g++ -o test test .cpp 也是可以的

还有一种方法

 

如果你是把文件保存为 .c格式,反正里面全是 c的代码

 

 


举报

相关推荐

0 条评论