In vari progetti C e C++ multi thread ho visto il flag -pthread
applicato allo stage di compilazione e collegamento mentre altri non lo usano affatto e basta passare -lpthread
allo stage di collegamento .Importanza del flag -pthread durante la compilazione
C'è qualche pericolo che non si compili e si colleghi al flag -pthread
- cioè cosa fa effettivamente lo -pthread
? Sono interessato principalmente alle piattaforme Linux.
Potrebbe non essere solo "errno" e la pre-elaborazione in generale. Non sono sicuro di quanto sia rilevante l'articolo http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf per le ottimizzazioni di gcc, ma sono stato sicuramente impressionato dalla profondità della recensione Là. –
Non penso che l'esempio di errno sia corretto. Anche senza un flag -pthread o _REENTRANT define, my errno.h (glibc 2.10.1) e gcc (4.4.1 su amd64) genera una chiamata dinamica per la gestione di errno e non si collega con l'indirizzo del simbolo. –
@Andy: Ho appena fatto un grep per '_REENTRANT' in'/usr/include'; Sono sicuro che ci sono altri esempi del suo utilizzo. –