thread pthread_create pthread ejemplo c++ c linux pthreads

c++ - pthread_create - Importancia de-pthread flag al compilar



pthreads php (2)

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

¿Existe algún peligro de no compilar y vincular con la bandera de -pthread ? Es decir, ¿qué hace realmente la -pthread ? Estoy interesado principalmente en plataformas Linux.


De man gcc :

-pthread Agrega soporte para multihilo con la biblioteca pthreads. Esta opción establece indicadores tanto para el preprocesador como para el enlazador.


Tratar:

gcc -dumpspecs | grep pthread

y busca cualquier cosa que comience con %{pthread:

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

Usar _REENTRANT , en GNU libc, cambia la forma en que funcionan algunos encabezados de libc. Como ejemplo específico, hace que errno llame a una función que devuelve una ubicación local de subprocesos.