当前位置: 技术问答>linux和unix
使用pthread库失败
来源: 互联网 发布时间:2016-01-22
本文导语: 在socketc.cpp中: #include #include ............ ///////////////////////////////////////////////////////// int main(int argv,char ** args) { ......... pthead_t thread_r;//创建接受线程...
在socketc.cpp中:
#include
#include
............
/////////////////////////////////////////////////////////
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库?谢谢
#include
#include
............
/////////////////////////////////////////////////////////
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;