Неопределенная ссылка на pthread create
У меня есть этот код:
#include <stdio.h>
#include <pthread.h>
void* cuoco(void* arg)
{
fprintf(stderr,"Inizio codice cuocon");
fprintf(stderr,"Fine codice cuocon");
return NULL;
}
void* cameriere(void* arg)
{
fprintf(stderr,"Inizio codice camerieren");
fprintf(stderr,"Fine codice camerieren");
return NULL;
}
void* cliente(void* arg)
{
fprintf(stderr,"Inizio codice clienten");
fprintf(stderr,"Fine codice clienten");
return NULL;
}
int main(int argc, char* argv[])
{
void* (*routine)(void*);
routine=cuoco;
pthread_t thread_cuoco,thread_cameriere,thread_cliente;
pthread_create(&thread_cuoco,NULL,routine,NULL);
return 0;
}
и в параметрах компилятора я вставляю -lpthread
Но он говорит:
"Неопределенная ссылка на pthread_create"
Я использую ubuntu 10.10, поэтому у меня уже установлена библиотека pthread, я не могу понять причину этой ошибки.
5 ответов
использовать-lpthread в качестве последнего флага компилятора.
пример:
gcc -o sample sample.c -lpthread
не видя команды компилятора, я подозреваю -lpthread
не в конце. Библиотеки должны быть размещены в конце команды компилятора:
используйтеглавная ССЗ.c-lpthread
-pthread
вместо -lpthread
, as -pthread
может добавить другие настройки (например, определение макроса _REENTRANT
например).в Eclipse вы должны добавить строку pthread.
проект - > свойства - > сборка C/C++ - > Настройки - > настройки инструмента - > Компоновщик GCC - > библиотеки- > Библиотеки (- l) - > добавить - > pthread
после этого создайте свой проект.
найдено решение ребята: D просто перейдите в настройки > > компилятор > > вкладка компоновщик > > добавить lib перейдите на диск и перейдите в папку lib и найдите "x86_64_linux_gnu" и найдите "pthread" наслаждайтесь :)