zoukankan      html  css  js  c++  java
  • 线程异常:undefined reference to 'pthread_create' 处理

    源代码:

    #include <stdio.h>
    #include <pthread.h>
    #include <sched.h>


    void *producter_f (void *arg);
    void *consumer_f (void *arg);




    int buffer_has_item=0;
    pthread_mutex_t mutex;


    int running =1 ;


    int main (void)
    {
    pthread_t consumer_t;
    pthread_t producter_t;

    pthread_mutex_init (&mutex,NULL);

    pthread_create(&producter_t, NULL,(void*)producter_f, NULL );
    pthread_create(&consumer_t, NULL, (void *)consumer_f, NULL);
    usleep(1);
    running =0;
    pthread_join(consumer_t,NULL);
    pthread_join(producter_t,NULL);
    pthread_mutex_destroy(&mutex);

    return 0;
    }


    void *producter_f (void *arg)
    {
    while(running)
    {
    pthread_mutex_lock (&mutex);
    buffer_has_item++;
    printf("生产,总数量:%d ",buffer_has_item);
    pthread_mutex_unlock(&mutex);
    }
    }


    void *consumer_f(void *arg)
    {
    while(running)
    {
    pthread_mutex_lock(&mutex);
    buffer_has_item--;
    printf("消费,总数量:%d ",buffer_has_item);
    pthread_mutex_unlock(&mutex);
    }
    }



    错误场景:

    [root@luozhonghua 04]# gcc -o mutex ex04-5-mutex.c

    /tmp/ccZuFiqr.o: In function `main':
    ex04-5-mutex.c:(.text+0x3d): undefined reference to `pthread_create'
    ex04-5-mutex.c:(.text+0x61): undefined reference to `pthread_create'
    ex04-5-mutex.c:(.text+0x8b): undefined reference to `pthread_join'
    ex04-5-mutex.c:(.text+0x9f): undefined reference to `pthread_join'

    collect2: ld returned 1 exit status


    分析:pthread 库不是 Linux 系统默认的库,连接时须要使用静态库 libpthread.a


    处理:

    在编译中加 -lpthread 參数
    [root@luozhonghua 04]# gcc -lpthread -o mutex ex04-5-mutex.c



  • 相关阅读:
    HTTP的OPTIONS请求方法
    K8s -- DaemonSet
    Nginx 变量漫谈(二)
    Nginx 变量漫谈(一)
    通俗地讲,Netty 能做什么?
    CSP AFO后可以公开的情报
    AT1219 歴史の研究
    LuoguP4165 [SCOI2007]组队
    CF708C Centroids(树形DP)
    CF208E Blood Cousins(DSU,倍增)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4045608.html
Copyright © 2011-2022 走看看