OS X clang -pthread

6

如何在OS X使用clang编译器和链接器来使用pthread库?

对于GCC编译器,我知道使用-pthread选项可以设置适当的编译器/链接器选项,但是在OS X上使用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 

应该是完全一样的 - 我非常确定。 - Mats Petersson
https://dev59.com/gHE95IYBdhLWcg3wPrkI - DrYap
看起来我刚刚添加的示例,似乎在链接可执行文件时clang不需要-pthread。 - José
1个回答

13

在编译时,clang需要-pthread参数,但在链接时不需要。这可能会令人感到烦恼,但这是已知的行为:

$ 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
$

编译和链接同时进行,是否会在有/无-pthread的情况下发出警告?(我认为是clang -o x x.cpp)这是您在答案中没有尝试过的一种组合。(我没有轻松访问Mac,但正在尝试为其开发...) - Jason Gross

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接