2013-07-24 18 views
5

Jakie są wymagania kompilator/linker korzystania pthread bibliotekę z brzękiem w OS X.OS X dzyń -pthread

z GCC wiem, że za pomocą -pthread ustawić odpowiednie opcje kompilatora/linkera, ale pewien OS X z klangiem.

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

Powinien być dokładnie taki sam - jestem prawie pewien. –

+0

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

+0

zobacz przykład, który właśnie dodałem, wydaje się, że klang nie wymaga -pthread podczas łączenia pliku wykonywalnego. –

Odpowiedz

12

clang wymaga -pthread podczas kompilacji, ale nie podczas łączenia. To jest irytujące, ale obserwuje się zachowanie:

$ 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

Czy kompilowanie i łączenie jednocześnie wysyłają ostrzeżenie z/bez '-pthread'? ('clang -o x x.cpp', myślę) To jedyna kombinacja, której nie próbujesz w swojej odpowiedzi. (Nie mam łatwego dostępu do komputera Mac, ale staram się go opracować dla jednego ...) –

+0

Nie. Clang -pthread -o x x.cpp nie wydaje ostrzeżenia. – bjori

+0

już nie ... – vy32

0

myślę używany do dodawania -lpthread do brzękiem też.

+0

Byłoby lepiej, gdybyś wyjaśnił, co oznacza ten klucz i jak może rozwiązać problem –