gcc 編譯出現undefined reference to‘pthread_create’的錯誤

當發現
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章