gcc -lpthread

Posted 那一剑的风情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc -lpthread相关的知识,希望对你有一定的参考价值。

转自:http://www.cnblogs.com/suntp/p/6473751.html

如果用gcc编译使用了POSIX thread的程序时,通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了。

而gcc手册里则指出应该在编译和链接时都增加 -pthread 选项。

编译选项中指定 -pthread 会附加一个宏定义 -D_REENTRANT,该宏会导致 libc 头文件选择那些thread-safe的实现;

链接选项中指定 -pthread 则同 -lpthread 一样,只表示链接 POSIX thread 库。

由于 libc 用于适应 thread-safe 的宏定义可能变化,因此在编译和链接时都使用 -pthread 选项而不是传统的 -lpthread 能够保持向后兼容,并提高命令行的一致性。

 

目前gcc 4.5.2中已经没有了关于 -lpthread的介绍了。所以以后的多线程编译应该用-pthread,而不是-lpthread。

 

ubuntu 下默认是没有pthread库 的   即使在编译的时候  加上 -lpthread 也不行

  sudo apt-get install glibc-doc

glibc 是linux下面c标准库的实现,即GNU C Library。glibc本身是GNU旗下的C标准库,后来逐渐成为了Linux的标准c库,而Linux下原来的标准c库Linux libc逐渐不再被维护。

以上是关于gcc -lpthread的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX 上的 GCC——多个版本的 gcc

mingw和gcc的关系?mingw具有gcc的全部核心编译功能吗

gcc 和 g++/gcc-c++ 有啥区别?

ubuntu系统下怎么安装gcc编译器

GCC:在 GCC 版本之间伪装

arm gcc 内嵌汇编,gcc该是啥选项呢