multithreading em codeblocks

2

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
    
por mahesh 02.01.2015 / 16:05

3 respostas

3

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'. .)

    
por steeldriver 02.01.2015 / 17:01
2

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 Provo Cattivo 08.10.2015 / 10:46
0

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 .

    
por ABHISHEK CHAUDHARY 02.01.2015 / 16:29