Я пытался реализовать многопоточность, используя кодовые блоки в Ubuntu.
Я набрал следующую программу.
void *myThreadFun(void *vargp)
{
sleep(1);
printf("Printing hi from Thread \n");
return NULL;
}
int main()
{
pthread_t tid;
printf("Before Thread\n");
pthread_create(&tid, NULL, myThreadFun, NULL);
pthread_join(tid, NULL);
printf("After Thread\n");
exit(0);
}
Но я не смог скомпилировать и запустить программу в кодовых блоках. Я получил следующую ошибку
multithread.c undefined reference to 'pthread_create'
multithread.c undefined reference to 'pthread_join'
, может ли кто-нибудь мне помочь
Я использовал следующие заголовочные файлы в коде:
pthread.h
stdio.h
stdlib.h
В Code :: Blocks, если вы используете компилятор GNU gcc
, вам, вероятно, понадобится добавить флаг компилятора -pthread
как к параметрам компилятора, так и к компоновщику (в `Project -> Build options ... )
Не забудьте убедиться, что вы правильно установили библиотеки pthread. Вы можете найти его в центре программного обеспечения в разделе "libpthread-stubs0-dev" или просто установить, выполнив:
sudo apt-get install libpthread-stubs0-dev
.
Кроме того, я не совсем понял, во-первых, что вам нужно просто ввести -pthread вручную ...
Пройдите эта ссылка , проблема не с codeblocks и не с компилятором также. Проблема, кажется, с компоновщиком, я попробовал Ваш код в затмении, я получаю ту же ошибку, если я не использую:
gcc -pthread -o multithread multithread.c
Hope, которая помогает. Считайте больше здесь .