一尘不染

-pthread标志在编译时的意义

linux

在各种多线程C和C
++项目中,我已经看到该-pthread标志同时应用于编译和链接阶段,而其他人则根本不使用它,而只是-lpthread转到链接阶段。

有没有编译和链接-pthread标志的危险,即-pthread实际上是做什么的?我主要对Linux平台感兴趣。


阅读 222

收藏
2020-06-02

共1个答案

一尘不染

尝试:

gcc -dumpspecs | grep pthread

并查找以%{pthread:。开头的任何内容。

在我的计算机上,这导致文件使用进行编译并-D_REENTRANT与链接-lpthread。在其他平台上,这可能有所不同。使用-pthread于大多数便携性。

_REENTRANT在GNU libc上使用,可以更改某些libc标头的工作方式。作为一个具体示例,它使errno调用函数返回线程本地位置。

2020-06-02