在各种多线程C和C++项目中,我看到-pthread标志同时应用于编译和链接阶段,而其他项目则根本不使用它,只是将-lpthread传递给链接阶段。
没有编译和链接-pthread标志会有什么危险吗?也就是说,-pthread实际上是做什么的?我主要对Linux平台感兴趣。
发布于 2010-01-25 00:37:56
尝试:
gcc -dumpspecs | grep pthread并查找任何以%{pthread:开头的内容。
在我的电脑上,这会导致文件用-D_REENTRANT编译,并用-lpthread链接。在其他平台上,这可能会有所不同。使用-pthread实现最大的可移植性。
在GNU libc上使用_REENTRANT改变了一些libc头文件的工作方式。作为一个具体的例子,它使errno调用返回线程本地位置的函数。
发布于 2010-01-25 00:38:04
来自man gcc
-pthread通过pthreads库添加了对多线程的支持。此选项设置预处理器和链接器的标志。
https://stackoverflow.com/questions/2127797
复制相似问题