In verschiedenen Multithread C und C++ - Projekten habe ich das -pthread
Flag sowohl auf die Kompilierungs- und Verknüpfungsstufe angewendet, während andere es überhaupt nicht verwenden und einfach -lpthread
an die Verknüpfungsstufe übergeben .Bedeutung von -pthread Flag beim Kompilieren
Besteht die Gefahr, dass das Flag -pthread
nicht kompiliert und verknüpft wird - was macht -pthread
eigentlich? Ich bin hauptsächlich an Linux-Plattformen interessiert.
Es kann nicht nur "errno" und Vorverarbeitung im Allgemeinen sein. Ich bin nicht sicher, wie relevant der Artikel http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf in der Praxis für gcc-Optimierungen ist, aber ich war sicher beeindruckt von der Tiefe der Überprüfung Dort. –
Ich denke nicht, dass das Fehler-Beispiel korrekt ist. Auch ohne ein -pthread-Flag oder _REENTRANT-define erzeugt mein errno.h (glibc 2.10.1) und gcc (4.4.1 auf amd64) einen dynamischen Aufruf zur errno-Behandlung und verbindet sich nicht mit der Symboladresse. –
@Andy: Ich habe gerade ein Grep für '_REENTRANT' in'/usr/include'; Ich bin sicher, dass es andere Beispiele für seine Verwendung gibt. –