POSIX多线程程序编译问题

      线程的概念已经出现一段时间了,在IEEE POSIX发布标准之前,线程实现的版本在各个厂商之间存在差别,在老版本的系统中存在的是LinuxThread函数库,随后的POSIX开发了两个线程库NGPT(新一代线程库)和NPTL(本地线程库),2002年,NGPT宣布他们不愿意分化线程团队,所以停止NGPT的更新,所以NPTL成为了POSIX线程库的新标准

       由于 在现在的2.6内核中一般缺省自带的是NPTL,可以在控制台输入 getconf GNU_LIBPTHREAD_VERSION查看是否是NPTL库,笔者的系统是fedora12,返回NPTL 2.11.1.  如果你是安装的NPTL,编译必须显示的指定头文件的库函数的位置,在linux程序设计(第三版)中,编译thread.c给出的编译命令为cc -D_REENTANT -I/usr/include/nptl thread.c -o thread -L/usr/lib/nptl -lpthread    但是如果系统默认使用的是NPTL线程库则可以写成cc -D_REENTANT thread.c -o thread -lpthread   其中必须定义宏_REENTAN,通过定义它可以告诉编译器我们需要可重入的功能.但是有种更为简洁的方法通过编译命令  cc thread.c -o thread -pthread可以系统自动完_REENTANT的定义.

    (第一次做学习笔记)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值