Em Code :: Blocks, se você estiver usando o compilador GNU gcc
, provavelmente precisará adicionar o sinalizador -pthread
do compilador às opções do compilador e do vinculador (em 'Projeto - > Opções de construção'. .)
Eu tentei implementar multithreading usando codeblocks no Ubuntu.
Eu digitei o seguinte programa.
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);
}
Mas não consegui compilar e executar o programa em codeblocks. Eu recebi o seguinte erro
multithread.c undefined reference to 'pthread_create'
multithread.c undefined reference to 'pthread_join'
alguém pode me ajudar
Eu usei os seguintes arquivos de cabeçalho no código:
pthread.h
stdio.h
stdlib.h
Em Code :: Blocks, se você estiver usando o compilador GNU gcc
, provavelmente precisará adicionar o sinalizador -pthread
do compilador às opções do compilador e do vinculador (em 'Projeto - > Opções de construção'. .)
Não se esqueça de verificar se instalou as bibliotecas pthread corretamente. Você pode encontrá-lo no centro de software em "libpthread-stubs0-dev" ou simplesmente instalar fazendo:
sudo apt-get install libpthread-stubs0-dev
.
Eu também não entendi muito bem que você só precisa digitar -pthread manualmente ...
Por favor, consulte este link , o problema não é codeblocks e não com o compilador também. Problema parece ser com o linker, eu tentei o seu código no eclipse, eu recebo o mesmo erro, se eu não estou usando:
gcc -pthread -o multithread multithread.c
Espero que ajude. Leia mais aqui .