Answers:
尝试:
gcc -dumpspecs | grep pthread
并寻找任何以 %{pthread:
。。
在我的计算机上,这导致使用编译文件-D_REENTRANT
并与链接-lpthread
。在其他平台上,这可能有所不同。使用-pthread
于大多数便携性。
_REENTRANT
在GNU libc上使用,可以更改某些libc标头的工作方式。作为一个具体示例,它使errno
调用函数返回线程本地位置。
-D_REENTRANT
或-pthread
自动提供的。使用运行您的构建,g++ -v
它将转储有关编译器前端实际传递给cc1plus
and的参数的大量输出ld
。
errno
一般而言,可能不只是预处理。我不确定hpl.hp.com/techreports/2004/HPL-2004-209.pdf对于gcc优化在实践中有多重要,但是我对那里的评论深度印象深刻。