#ifndef _REENTRANT
#error "请开启gcc编译器的多线程可重入选项-pthread"
#endif

用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

参考地址:http://blog.csdn.net/skylinethj/article/details/38569243

man gcc中的关于pthread的介绍:
-pthreadAdds support for multithreading with the pthreads library. This option sets flags forboth the preprocessor and linker.-pthreadsAdd support for multithreading using the POSIX threads library. This option setsflags for both the preprocessor and linker. This option does not affect the threadsafety of object code produced by the compiler or that of libraries supplied with it.-pthreadThis is a synonym for -pthreads.
从上面的 man gcc中的详细说明可以看出:
1)-pthread和-pthreads的含义是相同的。
2)-pthread或者-pthreads的编译选项是用于在编译时增加多线程的支持。该选项同时对“预处理器”和“链接器”产  生作用。
3)-pthread或者-pthreads的编译选项,即不影响编译器产生的目标代码的线程安全性,也不影响对提供的支持多线程的函数库libraries(的选择).

http://www.taodudu.cc/news/show-3612316.html

相关文章:

  • Redission 可重入锁(Reentrant Lock)公平锁(Fair Lock)
  • Linux C编程中_REENTRANT宏
  • Reentrant 可重入解释
  • 使用Django框架遇到RuntimeError: populate() isn't reentrant错误
  • django部署在apache下出现RuntimeError: populate() isn't reentrant错误的解决
  • java可重入锁是什么意思_Java中的可重入(Reentrant)锁
  • LINUX C编程中_REENTRANT宏的作用
  • Django实战中遇到的坑:RuntimeError: populate() isn‘t reentrant最终解决方案
  • 面试向:什么是Reentrant Lock?
  • 【linux/makefile】-D_REENTRANT编译选项的作用
  • Linux如何定义宏 REENTRANT,linux – 我需要-D_REENTRANT和-pthreads吗?
  • 递归重入c语言延时函数多任务程序设计中的函数重入问题按照Keil的规范对函数添加关键字“reentrant”,将函数定义为可重入的 void Delay_MS(x) reentrant
  • 关于_REENTRANT宏
  • c51 reentrant 关键字详解
  • c语言reentrant,Keil C51對C語言的關鍵詞擴展之十五: reentrant
  • c语言reentrant,Reentrant Non-reentrant Function
  • 可重入(reentrant)函数
  • -D_REENTRANT机制
  • -D_REENTRANT 宏作用
  • Keil C51对C语言的关键词扩展之十五: reentrant
  • P10 JFrame 窗口
  • java jframe 控件_窗体控件JFrame的使用
  • Java.JFrame
  • java新建jframe_如何在Swing java中创建JFrame模型
  • java jframe创建窗体_Java中利用JFrame创建窗体
  • java关闭jframe_java jframe关闭窗口
  • java jframe_Java窗口(JFrame)从零开始(1)——JFrame窗口
  • jframe的简单用法
  • java jframe传参_在JFrame之间传递值
  • java jframe 容器,容器(JFrame)

2021-02-02 _REENTRANT相关推荐

  1. 【财经期刊FM-Radio|2021年02月23日】

    title: [财经期刊FM-Radio|2021年02月23日] 微信公众号: 张良信息咨询服务工作室 [今日热点新闻一览↓↓] 纳指跌超2%,科技股领跌,道指收涨,能源领衔走高,金银油铜高涨,伦铜 ...

  2. 2021.06.02会解方程的计算器

    2021.06.02会解方程的计算器 (题目来源:) 题目描述 为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例: 4+3x=8 6a-5+1=2-2a -5+12y=0 ZL先生被主 ...

  3. 【每日一知】什么是内聚和耦合? (2021.02.02 )

    [每日一知]什么是内聚和耦合? (2021.02.02 ) 一.简单了解 内聚(Cohesion) 是一个模块内部各成分之间相关联程度的度量. 耦合(Coupling) 是模块间 依赖程度的度量. 内 ...

  4. 2021.06.02税收和补贴问题

    2021.06.02税收和补贴问题 (题目来源:洛谷-P1023) 题目描述 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位 ...

  5. OpenCV3.2+VS2013+Tesseract3.02.02配置

    分享一下Tesseract3.02.02版本在Windows下的配置.我的环境VS2013+win8 64bit+OpenCV3.2. 需要下载:tesseract-orc-setup-3.02.02 ...

  6. P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(2022.02.02) --- python3实现

    [NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 """P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(2022.02.02) h ...

  7. 时间格式2020-09-29T18:02:02.000Z转换为“年月日时分秒“

    遇到一个需求: 选择2020-09-30 02:02:02时间后打印出来是 "2020-09-29T18:02:02.000Z" 格式的,后台需要转换为 "2020-09 ...

  8. JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组

    本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...

  9. [02.02]主题之家精美主题每日更新【雪豹】

    [02.02]主题之家精美主题每日更新[雪豹] 温馨提示: 1:此更新合集由雪豹整理,由于主题之家采用防盗链设计,直接点击会出现盗链接的提示,请下载时点击直接下载或用下载工具下载. 2:以下所有软件均 ...

  10. 2021年02月虹科Pico汽车示波器简报

    有了虹科Pico示波器,摇身一变修车小能手,虹科同事的丰田卡罗拉出现急加速抖动故障,来看看示波器团队的陈工如何快速精准地排除这个故障.另外很多用户问到,虹科PicoBNC+ 2000A大量程电流钳可以 ...

最新文章

  1. Go 学习笔记(23)— 并发(02)[竞争,锁资源,原子函数sync/atomic、互斥锁sync.Mutex]
  2. nginx rails 详细站点配置入门教程
  3. centos7 开启 关闭 NetworkManager
  4. 037_Dropdown下拉菜单
  5. 使用STM32CubeMX求得CPU芯片温度
  6. 【模型解读】深度学习网络只能有一个输入吗
  7. Elasticsearch对地理数据查询(一)
  8. 心中一万只草泥马在奔腾是种怎样的体验?| 今日最佳
  9. 李开复唱衰互联网手机:大部分公司会失败
  10. 60 MM配置-后勤发票校验-设置重复发票检查
  11. MFC开发IM-第六篇、MFC 文本框 用法
  12. vue - 开发环境构建
  13. Java 接口实例化
  14. NMS非极大值抑制算法原理
  15. 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
  16. BitSet源码解析,位运算玩的真六
  17. 【杂谈】概率与随机以及手游抽卡机制的科普
  18. 姐妹素数java_Java之姐妹素数
  19. 终于结束漂泊的身份-我办理北京人才引进的经历
  20. 利用 Maxima 求解常微分方程

热门文章

  1. RNA-SEQ转录组数据,由Count 计算TPM 和FPKM
  2. 学习FLASH制作动画的关键技术点
  3. tensorflow2.3实现PPLCNet——一个速度更快、准确率更高的轻量级骨干网络
  4. netstat -ano,ntsd;tasklist,tskill-查看杀死进程命令
  5. 人工智能未来是否会取代人类程序员?
  6. Ant Design Upload 自定义上传 customRequest
  7. 计算机缺乏内存将无法运行,电脑内存损坏,导致计算机频繁重启,无法正常运行?好的内存条...
  8. JAVA多维分析报表怎么做_如何使用Java数据集进行web端的多维分析操作
  9. Pygame 官方文档 - Tutorials - 游戏制作指南(Making Games Tutorial)- 正式开干(Kicking things off)
  10. C语言 memset函数