Importancia del indicador -pthread al compilar

Resuelto leeeroy asked hace 14 años • 2 respuestas

En varios proyectos de C y C++ de subprocesos múltiples, he visto el -pthreadindicador aplicado tanto a la etapa de compilación como a la de vinculación, mientras que otros no lo usan en absoluto y simplemente pasan-lpthread a la etapa de vinculación.

¿Existe algún peligro al no compilar y vincular con la -pthreadbandera, es decir, qué -pthreadhace realmente? Estoy principalmente interesado en las plataformas Linux.

leeeroy avatar Jan 24 '10 23:01 leeeroy
Aceptado

Intentar:

gcc -dumpspecs | grep pthread

y busca cualquier cosa que comience con%{pthread: .

En mi computadora, esto hace que los archivos se compilen -D_REENTRANTy se vinculen con -lpthread. En otras plataformas, esto podría diferir. Usar-pthread para la mayor portabilidad.

El uso de _REENTRANT, en GNU libc, cambia la forma en que funcionan algunos encabezados de libc. Como ejemplo específico, llama errnoa una función que devuelve una ubicación local del subproceso.

C. K. Young avatar Jan 24 '2010 16:01 C. K. Young

De man gcc:

-pthread Agrega soporte para subprocesos múltiples con la biblioteca pthreads. Esta opción establece indicadores tanto para el preprocesador como para el vinculador.

Dmitry avatar Jan 24 '2010 16:01 Dmitry