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的主要内容,如果未能解决你的问题,请参考以下文章