2013-07-24 24 views
5

Was sind die Compiler/Linker Anforderungen für die Verwendung von pthread-Bibliothek mit Klappern in OS X.OS X Klirren -pthread

Mit GCC ich weiß, dass die entsprechenden Compiler/Linker-Optionen -pthread gesetzt, aber ich nicht sicher OS X mit Klängen.

air:~ jose$ clang++ -c test.cpp -pthread 
air:~ jose$ clang++ -o test -pthread test.o 
clang: warning: argument unused during compilation: '-pthread' 

air:~ jose$ g++ -c test.cpp -pthread 
air:~ jose$ g++ -o test -pthread test.o 
+0

Sollte genau das gleiche sein - ich bin mir ziemlich sicher. –

+0

http://stackoverflow.com/questions/2391194/what-is-gs-pthread-equiv-in-clang – DrYap

+0

siehe das Beispiel, das ich gerade hinzugefügt habe, scheint, dass clang nicht benötigt -pthread beim Verknüpfen der ausführbaren Datei. –

Antwort

12

clang erfordert -pthread beim Kompilieren, aber nicht beim Verknüpfen. Das ist ärgerlich, aber es ist Verhalten beobachtet:

$ clang -c x.cpp 
$ clang -pthread -c x.cpp 
$ clang -o x x.o 
$ clang -pthread -o x x.o 
clang: warning: argument unused during compilation: '-pthread' 
$ 

$ clang --version 
Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn) 
Target: x86_64-apple-darwin13.0.0 
Thread model: posix 
$ 
+0

Gibt es beim Kompilieren und Linken gleichzeitig eine Warnung mit/ohne '-pthread'? ('clang -o x x.cpp', denke ich) Das ist die eine Kombination, die du in deiner Antwort nicht versuchst. (Ich habe keinen einfachen Zugang zu einem Mac, aber ich versuche, für einen zu entwickeln ...) –

+0

Nr. Clang -pthread -o x x.cpp gibt keine Warnung aus. – bjori

+0

nicht mehr ... – vy32

0

Ich glaube, ich habe auch ein -lpthread zum Klirren hinzuzufügen.

+0

Es wäre besser, wenn Sie erklären, was dieser Schlüssel bedeutet und wie er das Problem lösen könnte –