|
程序如下:只是创建两个线程。
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
//线程一
void thread1(void)
{
int i=0;
for(i=0;i<6;i++){
printf("This is a pthread1.\n");
if(i==2)
pthread_exit(0);
sleep(1);
}
}
//线程二
void thread2(void)
{
int i;
for(i=0;i<3;i++)
printf("This is a pthread2.\n");
pthread_exit(0);
}
int main(void)
{
pthread_t id1,id2;
int i,ret;
ret=pthread_create(&id1,NULL,(void *)thread1,NULL);
if(ret!=0){
printf ("Create pthread error!\n");
exit (1);
}
ret=pthread_create(&id2,NULL,(void *)thread2,NULL);
if(ret!=0){
printf ("Create pthread error!\n");
exit (1);
}
pthread_join(id1,NULL);
pthread_join(id2,NULL);
exit (0);
}
编译后错误如下:
/tmp/ccYy89hh.o: In function `main':
thread.c .text+0xae): undefined reference to `pthread_create'
thread.c .text+0xf3): undefined reference to `pthread_create'
thread.c .text+0x127): undefined reference to `pthread_join'
thread.c .text+0x13a): undefined reference to `pthread_join'
好像是说没有给那两个函数定义参数,编译,汇编都没错,就是链接时出现这个错误。 |
|