En este tutorial, discutiremos algunas de las principales causas de este error y cómo resolverlo."
Empecemos.
Causa
Hay varias razones por las cuales se produce el error de "referencia indefinida a pthread_create".
Un código de ejemplo es como se muestra a continuación:
#incluirEl código anterior contiene un programa PTHREAD simple que simplemente imprime un mensaje de texto simple. Sin embargo, si intentamos compilar el código anterior, devuelve un error.
Causa 1: Falta Archivo de encabezado de hilo
En C, la capacidad de crear múltiples hilos en un programa es proporcionada por el PTHREAD.H. Por lo tanto, antes de que podamos usar el pthread_create y todas sus funciones proporcionadas, debemos incluir este archivo de encabezado en nuestro programa.
Por lo tanto, en algunos casos, no incluir el PTHREAD.H El archivo de encabezado hará la referencia involuntaria.
Podemos solucionar esto incluyendo el archivo como se muestra:
#incluirUna vez incluido, podemos proceder a compilar y probar nuestro programa.
Causa 2: bandera de compilador incorrecto
Otra causa común del error de "referencia indefinida a pthread_create" es compilar su programa con los indicadores del compilador incorrecto.
Por ejemplo, si está compilando su programa C con el comando:
$ GCC -O Threads Posix_threads.CObtendrá el error de "referencia indefinida a pThreads".
Mientras se asegura de que los Pthreads.h El archivo está incluido en su archivo de encabezado; Necesita compilar su código con el indicador del compilador correcto.
El comando correcto para el compilador GCC se muestra a continuación:
gcc -pthread -o hilos posix_threads.CSiéntase libre de reemplazar los nombres de salida de salida y entrada.
Agregar la opción -pThread a los comandos del compilador permite que el compilador ejecute el código con el pthread.H Biblioteca.
Causa 3: Falta de la bandera Cmake
Si está utilizando un archivo de fabricación para compilar su programa, deberá incluir las opciones de PTHREAD en el archivo.
Puede hacerlo agregando la siguiente línea a su archivo de fabricación.
ADD_COMPILE_OPTIONS (-PTHREAD)O
Set (cmake_cxx_flags "$ cmake_cxx_flags -pthread")Clausura
En este breve tutorial, cubrimos la referencia indefinida al error pthread_create "cuando trabaja con POSIX hilos. Aunque cubrimos las causas universales de este error, es posible que deba verificar su entorno de desarrollo y asegurarse de que las bibliotecas requeridas estén vinculadas correctamente.
Esperamos que hayas disfrutado el tutorial, gracias por leer.