当前位置: 技术问答>linux和unix
请教关于pthread的程序 编译通不过,谢谢
来源: 互联网 发布时间:2015-12-21
本文导语: 编译信息如下: [root@andy process]# gcc thrdcancel.c -o thrdcancel /tmp/ccMKonTr.o(.text+0x21): In function `main': : undefined reference to `pthread_create' /tmp/ccMKonTr.o(.text+0x5c): In function `main': : undefined reference to `pthread_create' /tmp/ccMK...
编译信息如下:
[root@andy process]# gcc thrdcancel.c -o thrdcancel
/tmp/ccMKonTr.o(.text+0x21): In function `main':
: undefined reference to `pthread_create'
/tmp/ccMKonTr.o(.text+0x5c): In function `main':
: undefined reference to `pthread_create'
/tmp/ccMKonTr.o(.text+0x8f): In function `main':
: undefined reference to `pthread_join'
/tmp/ccMKonTr.o(.text+0x9d): In function `main':
: undefined reference to `pthread_cancel'
/tmp/ccMKonTr.o(.text+0xad): In function `main':
: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
————————————————————————————————————
源程序代码如下:
/*
* thrdcreat.c - Illustrate creating a thread
*/
#include
#include
#include
void task1(int * counter);
void task2(int * counter);
void cleanup(int counter1, int counter2);
int g1 = 0;
int g2 = 0;
int main(void)
{
pthread_t thrd1, thrd2;
int ret;
/*create the first thread*/
ret = pthread_create(&thrd1,NULL,(void *)task1,(void *)&g1);
if(ret)
{
perror("pthread_create:task1");
exit(EXIT_FAILURE);
}
/*create the second thread*/
ret = pthread_create(&thrd2, NULL, (void *)task2, (void *)&g2);
if(ret)
{
perror("pthread_create:task2");
exit(EXIT_FAILURE);
}
pthread_join(thrd2,NULL);
pthread_join(thrd1,NULL);
cleanup(g1,g2);
exit(EXIT_SUCCESS);
}
void task1(int *counter)
{
while(*counter
[root@andy process]# gcc thrdcancel.c -o thrdcancel
/tmp/ccMKonTr.o(.text+0x21): In function `main':
: undefined reference to `pthread_create'
/tmp/ccMKonTr.o(.text+0x5c): In function `main':
: undefined reference to `pthread_create'
/tmp/ccMKonTr.o(.text+0x8f): In function `main':
: undefined reference to `pthread_join'
/tmp/ccMKonTr.o(.text+0x9d): In function `main':
: undefined reference to `pthread_cancel'
/tmp/ccMKonTr.o(.text+0xad): In function `main':
: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
————————————————————————————————————
源程序代码如下:
/*
* thrdcreat.c - Illustrate creating a thread
*/
#include
#include
#include
void task1(int * counter);
void task2(int * counter);
void cleanup(int counter1, int counter2);
int g1 = 0;
int g2 = 0;
int main(void)
{
pthread_t thrd1, thrd2;
int ret;
/*create the first thread*/
ret = pthread_create(&thrd1,NULL,(void *)task1,(void *)&g1);
if(ret)
{
perror("pthread_create:task1");
exit(EXIT_FAILURE);
}
/*create the second thread*/
ret = pthread_create(&thrd2, NULL, (void *)task2, (void *)&g2);
if(ret)
{
perror("pthread_create:task2");
exit(EXIT_FAILURE);
}
pthread_join(thrd2,NULL);
pthread_join(thrd1,NULL);
cleanup(g1,g2);
exit(EXIT_SUCCESS);
}
void task1(int *counter)
{
while(*counter