Neste tutorial, discutiremos algumas das principais causas desse erro e como resolvê -lo.”
Vamos começar.
Causa
Existem várias razões pelas quais a "referência indefinida ao erro de pthread_create" ocorre.
Um código de exemplo é como mostrado abaixo:
#incluirO código acima contém um programa simples de pTHread que simplesmente imprime uma mensagem de texto simples. No entanto, se tentarmos compilar o código acima, ele retornará um erro.
Causa 1: Faixa de cabeçalho de thread ausente
Em C, a capacidade de criar vários threads em um programa é fornecida pelo PTHREAD.h. Portanto, antes que possamos usar o Pthread_create e todas as suas funções fornecidas, precisamos incluir este arquivo de cabeçalho em nosso programa.
Portanto, em alguns casos, não incluir o PTHRAD.H Arquivo de cabeçalho resultará na referência indefinida.
Podemos consertar isso incluindo o arquivo como mostrado:
#incluirUma vez incluído, podemos prosseguir para compilar e testar nosso programa.
Causa 2: Bandeira incorreta do compilador
Outra causa comum da "referência indefinida ao erro de pthread_create" é compilar seu programa com as bandeiras incorretas do compilador.
Por exemplo, se você estiver compilando seu programa C com o comando:
$ gcc -o threads posix_threads.cVocê receberá o erro "Referência indefinida ao Pthreads".
Ao garantir que os pthreads.O arquivo H está incluído no seu arquivo de cabeçalho; Você precisa compilar seu código com a bandeira do compilador certo.
O comando correto para o compilador GCC é mostrado abaixo:
gcc -tthread -o threads posix_threads.cSinta -se à vontade para substituir os nomes de arquivos de saída e entrada.
Adicionar a opção -Pthread aos comandos do compilador permite que o compilador execute o código com o pTHread.biblioteca H.
Causa 3: Falta da bandeira do cmake
Se você estiver usando um arquivo make para compilar seu programa, precisará incluir as opções PTHread no arquivo.
Você pode fazer isso adicionando a seguinte linha ao seu arquivo make.
add_compile_options (-thread)Ou
Set (cmake_cxx_flags "$ cmake_cxx_flags -Pthread")Fechamento
Neste curto tutorial, abordamos o erro “Referência indefinida ao Pthread_create” ao trabalhar com threads POSIX. Embora tenhamos cobrindo as causas universais desse erro, pode ser necessário verificar seu ambiente de desenvolvimento e garantir que as bibliotecas necessárias estejam vinculadas corretamente.
Esperamos que você tenha gostado do tutorial, obrigado por ler.