Не используйте -pthread
. Это недокументированная опция GCC, вероятно, для совместимости с некоторыми другими (Solaris?) Компиляторами.
Определение -D_REENTRANT
, которое оно разрешает -pthread
, совершенно не нужно в glibc; ни один из заголовков не зависит от этого макроса для безопасности потока. (Последний из таких механизмов был удален из заголовков glibc в 1998 году!) Достаточно просто связать -lpthread
, чтобы переключить функции glibc в поточно-безопасный режим, и -lpthread
можно заменить вашей собственной библиотекой, как говорится в другом ответе. .