读书人

使用pthread库失败解决思路

发布时间: 2012-02-17 17:50:42 作者: rapoo

使用pthread库失败
在socketc.cpp中:

#include <pthread.h>
#include <thread_db.h>
............

/////////////////////////////////////////////////////////
int main(int argv,char ** args)
{
.........
pthead_t thread_r;//创建接受线程
pthread_attr_t attr_r;
pthread_attr_init(&attr_r);
pthread_attr_setdetachstate(&attr_r,PTHREAD_CREATE_JOINABLE);

pthead_t thread_s;//创建发送线程
pthread_attr_t attr_s;
pthread_attr_init(&attr_s);
pthread_attr_setdetachstate(&attr_s,PTHREAD_CREATE_JOINABLE);

if(0 == pthread_create(&thread_r,&attr_r,process_r,(void*)&sockfd))
{
perror( "线程创建 ");
return 1;
}
if(0 == pthread_create(&thread_s,&attr_s,process_s,(void*)&sockfd))
{
perror( "线程创建 ");
return 1;
}
pthread_attr_destroy(&attr_r);
pthread_attr_destroy(&attr_s);



pthread_join(thread_r,NULL);
pthread_join(thread_s,NULL);
..........
}

编译:g++ -g -c -L /lib socketc.cpp -lpthread
g++ -g -c -L /lib socketc.cpp -llibthread_db-1.0

/lib下有文件libthread_db-1.0.so
均出现:

错误:‘pthead_t’ 在此作用域中尚未声明
socketc.cpp:65: 错误:expected `; ' before ‘thread_r’
socketc.cpp:70: 错误:expected `; ' before ‘thread_s’
socketc.cpp:75: 错误:‘thread_r’ 在此作用域中尚未声明
socketc.cpp:80: 错误:‘thread_s’ 在此作用域中尚未声明
socketc.cpp:88: 错误:‘thread_r’ 在此作用域中尚未声明
socketc.cpp:89: 错误:‘thread_s’ 在此作用域中尚未声明

我的系统是fedora 6.0
请问怎么才能连接上pthread库?谢谢

[解决办法]
pthead_t修改为:pthread_t;

读书人网 >UNIXLINUX

热点推荐