не могу запустить make-файл программы на C [закрыто]

У меня есть небольшая программа, которая должна запускать второй поток. проблема в том, что при попытке сделать исполняемый файл этой программы с помощью make. Я получаю:

 engine@ubuntu:~/Desktop/Lecture$ make thread
 cc     thread.c   -o thread
 thread.c: In function ‘main’:
  thread.c:10:2: error: unknown type name ‘pthread’  .............

вот мой код:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>

void *func(void*);

int main(){

pthread tid;
if (pthread_create(&tid,NULL,fun,NULL)!= 0 ){
    printf("error by _ pthread \n");
}
printf ( "thread output1 \n");
sleep(1);
return EXIT_SUCCESS;
  }  

 void *fun(void* data){
printf("thread output2 \n")
  }

Я не думаю, что эта программа неправильная, может дело в том, как я запускаю команду make?

любая идея, почему я получаю это. заранее благодарим за помощь

-1
задан 31 May 2013 в 21:48

2 ответа

Вы забыли связать динамическую библиотеку?

cc thread.c -o thread -lpthread

Другие ошибки:

[ 116]
  • тип pthread: pthread_t
  • вы неправильно написали fun и func
  • без точки с запятой в функции после printf
    0
    ответ дан 31 May 2013 в 21:48

    Согласно странице руководства для pthread_create и некоторому примеру кода в Интернете, первый параметр - это указатель на pthread_t, а не pthread. Попробуйте это:

    pthread_t tid;
    
    0
    ответ дан 31 May 2013 в 21:48

    Другие вопросы по тегам:

    Похожие вопросы: