当前位置: 技术问答>linux和unix
关于线程编程的一个问题!
来源: 互联网 发布时间:2015-11-14
本文导语: 写了一个简单的程序用来创建一个新线程,运行是提示出错。不知是什么原因,请各位大侠指教! 代码如下: #include #include #include #include #include void print_message_function(void *ptr); int main(void) { pthread_t thread1,thread2; cha...
写了一个简单的程序用来创建一个新线程,运行是提示出错。不知是什么原因,请各位大侠指教!
代码如下:
#include
#include
#include
#include
#include
void print_message_function(void *ptr);
int main(void)
{
pthread_t thread1,thread2;
char *mes1="hello";
char *mes2="how are you";
pthread_create(&thread1,NULL,(void *)&print_message_function,(void *)mes1);
exit(0);
}
void print_message_function(void *ptr)
{
char *message;
message=(char *)ptr;
printf("%s",message);
}
错误提示:
/tmp/ccWjV0F9.o(.text+0x2d): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
请各位大侠给看看什么原因,怎么改?谢谢了!
代码如下:
#include
#include
#include
#include
#include
void print_message_function(void *ptr);
int main(void)
{
pthread_t thread1,thread2;
char *mes1="hello";
char *mes2="how are you";
pthread_create(&thread1,NULL,(void *)&print_message_function,(void *)mes1);
exit(0);
}
void print_message_function(void *ptr)
{
char *message;
message=(char *)ptr;
printf("%s",message);
}
错误提示:
/tmp/ccWjV0F9.o(.text+0x2d): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
请各位大侠给看看什么原因,怎么改?谢谢了!
|
1.没包含相应头文件,man 2 pthread_create,看需要什么头文件.
2.pthread_create(&thread1,NULL,(void *)&print_message_function,(void *)mes1);
第二个参数类型错误,C里面就直接用print_message_function,C++要自己转类型。
http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html
2.pthread_create(&thread1,NULL,(void *)&print_message_function,(void *)mes1);
第二个参数类型错误,C里面就直接用print_message_function,C++要自己转类型。
http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html
|
你link的时候没有链接pthread库
gcc ...... -lpthread
gcc ...... -lpthread