4.编译多线程应用程序

文章讨论了在不同平台上使用gcc编译多线程程序时,-pthread选项优于-lpthread的原因。-pthread不仅链接pthread库,还确保线程安全并具有更好的跨系统移植性。参考外部博客获取更多细节。
摘要由CSDN通过智能技术生成

        在不同平台下使用多线程的程序编译时的编译选项设置如下图所示。

        gcc下编译时我们会碰到两个选项-pthread和-lpthread,记住推荐使用-pthread而不是-lpthread,原因如下

  • -lpthread只是起到链接pthread库的作用;而-pthread选项除了会链接pthread库,还会增加一些影响编译的宏的定义,使得一些老版本基础库中的接口是线程安全的。因此使用-pthread会更加安全
  • Linux中pthread作为一个单独的库存在(libpthread.so),而在其他Unix系统中却不一定,在这些系统中使用-lpthread是无法实现链接到对应的pthread库的作用的;而使用-pthread却没有问题,因为编译器会正确的将-pthread展开为该系统下对应的编译参数。因此使用-pthread具有更好的可移植性。

        有关它们的具体区别可以参考这篇博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mega_Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值