免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1314 | 回复: 2
打印 上一主题 下一主题

关于编译多线程遇到的问题,请大虾们指点一二。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-10 15:44 |只看该作者 |倒序浏览
小弟在多线程中用了下列函数(文件名:pthread.c)
make_new_item();
pthread_delay_np();
consume_item();
在编译的时候出了问题,希望各位大虾指点一二。
源代码如下:
#include <stdio.h>
#include <pthread.h>

void reader_function(void);
void writer_function(void);
char buffer;
int buffer_has_item=0;
pthread_mutex_t mutex;
struct timespec delay;
main()
{
        pthread_t reader;
        delay.tv_sec=2;
        delay.tv_nsec=0;
        pthread_mutex_init(&mutex,NULL);
        pthread_create(&reader,NULL,(void *)&reader_function,NULL);
        writer_function();
}

void writer_function(void)
{
        while(1){
                pthread_mutex_lock(&mutex);
                if(buffer_has_item==0){
                        buffer=make_new_item();
                        buffer_has_item=1;
                }
                pthread_mutex_unlock(&mutex);
                pthread_delay_np(&delay);
        }
}
void reader_function(void)
{
        while(1){
                pthread_mutex_lock(&mutex);
                if(buffer_has_item==1){
                        consume_item(buffer);
                        buffer_has_item=0;
                }
                pthread_mutex_unlock(&mutex);
                pthread_delay_np(&delay);
        }
}

编译方式如下:
gcc -lpthread -o pthread pthread.c
编译结果如下:
/tmp/ccqNNbHD.o(.text+0x73): In function `writer_function':
: undefined reference to `make_new_item'
/tmp/ccqNNbHD.o(.text+0x9f): In function `writer_function':
: undefined reference to `pthread_delay_np'
/tmp/ccqNNbHD.o(.text+0xd4): In function `reader_function':
: undefined reference to `consume_item'
/tmp/ccqNNbHD.o(.text+0xfe): In function `reader_function':
: undefined reference to `pthread_delay_np'
collect2: ld returned 1 exit status

论坛徽章:
0
2 [报告]
发表于 2005-11-10 19:51 |只看该作者
你试试gcc -o pthread pthread.c  -lpthread
或许能行

论坛徽章:
0
3 [报告]
发表于 2005-11-11 00:18 |只看该作者
你的程序里面的读者和写着的函数在那里定义的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP