在不同平台下使用多线程的程序编译时的编译选项设置如下图所示。
gcc下编译时我们会碰到两个选项-pthread和-lpthread,记住推荐使用-pthread而不是-lpthread,原因如下文章来源:https://www.toymoban.com/news/detail-727038.html
- -lpthread只是起到链接pthread库的作用;而-pthread选项除了会链接pthread库,还会增加一些影响编译的宏的定义,使得一些老版本基础库中的接口是线程安全的。因此使用-pthread会更加安全
- Linux中pthread作为一个单独的库存在(libpthread.so),而在其他Unix系统中却不一定,在这些系统中使用-lpthread是无法实现链接到对应的pthread库的作用的;而使用-pthread却没有问题,因为编译器会正确的将-pthread展开为该系统下对应的编译参数。因此使用-pthread具有更好的可移植性。
有关它们的具体区别可以参考文章来源地址https://www.toymoban.com/news/detail-727038.html
到了这里,关于4.编译多线程应用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!