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.