1. 程式人生 > >Linux 編譯報錯 undefined reference to `pthread_create'

Linux 編譯報錯 undefined reference to `pthread_create'

在編譯Linux下多執行緒程式的時候出現錯誤資訊, 寫好程式碼,進行編譯時,出現如下錯誤提示資訊: 

thread.c:(.text+0xae): undefined reference to `pthread_create'
thread.c:(.text+0xf3): undefined reference to `pthread_create'

thread.c:(.text+0x127): undefined reference to `pthread_join'
thread.c:(.text+0x13a): undefined reference to `pthread_join'

collect2: ld returned 1 exit status


錯誤原因: pthread 庫不是 Linux 系統預設的庫,連線時需要使用靜態庫 libpthread.a,所以在使用pthread_create()建立執行緒,以及呼叫 pthread_atfork()函式建立fork處理程式時,需要連結該庫。
解決之道:在編譯中要加 -lpthread引數,類似於在使用是的引數 -lm.  gcc thread.c  -lpthread     thread.c為原始檔,不要忘了加上標頭檔案#include

這段時間一直在實習,也沒時間寫部落格了。最近在看《現代作業系統》這本書,爭取在12月份中旬之前看完此書。