2013-07-24 16 views
5

Quali sono i requisiti del compilatore/linker per l'utilizzo di libreria pthread con clangore in OS X.OS X clang -pthread

con GCC so che utilizzando -pthread impostare le opzioni di compilatore/linker appropriato, ma i Dubbi OS X con clang.

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

Dovrebbe essere esattamente lo stesso - ne sono abbastanza sicuro. –

+0

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

+0

vedere l'esempio ho solo aggiunto, sembra che clang non ha bisogno -pthread durante il collegamento l'eseguibile. –

risposta

12

clang richiede -pthread durante la compilazione, ma non durante il collegamento. Questo è fastidioso, ma si osserva un comportamento:

$ 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

La compilazione e il collegamento simultaneamente emettono un avvertimento con/senza '-pthread'? ('clang -o x x.cpp', penso) Questa è l'unica combinazione che non provi nella tua risposta. (Non ho un facile accesso a un Mac, ma sto cercando di svilupparlo per uno ...) –

+0

No. clang -pthread -o x x.cpp non emette alcun avviso. – bjori

+0

non più ... – vy32

0

penso che ho usato per aggiungere un -lpthread al clang troppo.

+0

Sarebbe meglio se spiegassi cosa significa questa chiave e come potrebbe risolvere il problema –