【问题标题】:Troubles with POSIX program using threads with gcc使用带有 gcc 的线程的 POSIX 程序的问题
【发布时间】:2012-03-29 05:46:55
【问题描述】:

我必须用 gcc 编写一个带有 POSIX 线程的程序,当我尝试编译它时,终端显示如下消息:

/tmp/ccw594wa.o:在函数main': POSIX.c:(.text+0xda): undefined reference topthread_create' POSIX.c:(.text+0x102): undefined reference to `pthread_create' collect2: ld devolvió el estado de salida 1

谁能帮我找出错误原因??程序必须实现生产者-消费者算法来完成一些任务,我的代码(未完成)是下一个

  #include "stdio.h"
  #include "pthread.h"
  #define p printf
  #define s scanf

  pthread_mutex_t exmut;
  float suma=0;
  float x;
  int iteraciones;

  void *h_productor (void *arg)  /*Procedimiento del productor*/
  {
  }

  void *h_consumidor (void *arg) /*Procedimiento del consumidor*/
  {
  }

  main()  /*Hilo principal*/
  {
     int error;
     int *out, idp=1, idc=2;
     pthread_t productor;      /*Hilo que realiza el proc. del productor*/
     pthread_t consumidor;     /*Hilo que realiza el proc. del consumidor*/ 
     p ("\n\n    Cálculo de e^x, por medio de una serie infinita... =)!");
     p ("\n\n  x= ");
     s ("%f",&x);
     do
     {
        p ("  No. de iteraciones: ");
        s ("%d",&iteraciones);
        if (iteraciones<1 || iteraciones>10)
           p("\n Número no válido, debes introducir un valor de entre 1 y 10\n");
     }
     while (iteraciones<1 || iteraciones>10);

     pthread_mutex_init (&exmut, NULL);
     /*Creamos ambos hilos, tanto el productor como el consumidor*/
     error = pthread_create (&productor,NULL,h_productor,&idp);
     error = pthread_create (&consumidor,NULL,h_consumidor,&idc);
     /*
     /*Esperamos a que ambos hilos terminen/
     error = pthread_join (h_productor,(void **)&out);
     error = pthread_join (h_consumidor,(void **)&out);
   */
     p ("\n  La aproximación para %d iteraciones del valor de e^%f= %f",iteraciones,x,suma);
  }  

【问题讨论】:

    标签: c multithreading unix pthreads posix


    【解决方案1】:

    您可以尝试使用-pthread 选项进行编译,该选项告诉 gcc 链接到 pthread 库。

    【讨论】:

    【解决方案2】:

    尝试:
    gcc -pthread -o test test.c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      相关资源
      最近更新 更多