У меня есть небольшая программа, которая должна запускать второй поток. проблема в том, что при попытке сделать исполняемый файл этой программы с помощью 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?
любая идея, почему я получаю это. заранее благодарим за помощь
Вы забыли связать динамическую библиотеку?
cc thread.c -o thread -lpthread
blockquote>Другие ошибки:
[ 116]тип pthread: pthread_t вы неправильно написали fun и func без точки с запятой в функции после printf blockquote>
Согласно странице руководства для pthread_create
и некоторому примеру кода в Интернете, первый параметр - это указатель на pthread_t
, а не pthread
. Попробуйте это:
pthread_t tid;