W różnych wielo-wątkowych projektach C i C++ widziałem flagę -pthread
zastosowaną do etapu kompilowania i łączenia, podczas gdy inne nie używają go w ogóle i po prostu przekazują -lpthread
do etapu łączenia .Znaczenie flagi -pthread podczas kompilowania
Czy istnieje jakiekolwiek niebezpieczeństwo, które nie powoduje kompilacji i łączenia z flagą -pthread
- tzn. Co właściwie robi -pthread
? Interesuję się głównie platformami Linux.
Nie może to być po prostu "errno" i ogólne przetwarzanie. Nie jestem pewien, czy artykuł http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf jest w praktyce dla optymalizacji gcc, ale na pewno byłem pod wrażeniem głębi recenzji tam. –
Nie sądzę, że przykład errno jest poprawny. Nawet bez zdefiniowania flagi -pthread lub _REENTRANT, moje errno.h (glibc 2.10.1) i gcc (4.4.1 na amd64) generują wywołanie dynamiczne do obsługi errno i nie łączą się z adresem symbolu. –
@Andy: Właśnie zrobiłem grep dla '_REENTRANT' w'/usr/include'; Jestem pewien, że istnieją inne przykłady jego użycia. –