gcc 编译出现undefined reference to‘pthread_create’的错误

来源:互联网 发布:广东省网络作家协会 编辑:程序博客网 时间:2024/05/16 08:29

当发现
gcc -lpthread -o …..
在使用了-lpthread 选项时,还是报告了
undefined reference to‘pthread_create’的错误。
此时应该使用 -pthread 选项。
man gcc | grep pthread 可以找到答案


-pthread 比 -lpthread 多了一个宏定义 -D_REENTRANT

对于多线程程序来说这个宏非常重要,这个宏会让libc和一些其他库,自动选择线程安全的函数实现(很多函数有线程安全和不安全的2种实现版本)

所以建议使用-pthread 或者加上 -D_REENTRANT.


参考资料:
1. gcc中-pthread和-lpthread的区别
http://blog.csdn.net/g446868263/article/details/6857840
2. gcc -lpthread和gcc -pthread的区别
http://blog.chinaunix.net/uid-25909722-id-3026989.html

0 0
原创粉丝点击