使用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;