在各种多线程C和C ++项目中,我已经看到该-pthread标志同时应用于编译和链接阶段,而其他人则根本不使用它,而只是-lpthread转到链接阶段。
-pthread
-lpthread
有没有编译和链接-pthread标志的危险,即-pthread实际上是做什么的?我主要对Linux平台感兴趣。
尝试:
gcc -dumpspecs | grep pthread
并查找以%{pthread:。开头的任何内容。
%{pthread:
在我的计算机上,这导致文件使用进行编译并-D_REENTRANT与链接-lpthread。在其他平台上,这可能有所不同。使用-pthread于大多数便携性。
-D_REENTRANT
_REENTRANT在GNU libc上使用,可以更改某些libc标头的工作方式。作为一个具体示例,它使errno调用函数返回线程本地位置。
_REENTRANT
errno