在ubuntu平臺下調用pthread_create()函數,用gcc編譯時出現Undefined reference to 'pthread_create'的問題。代碼中已經將pthread.h頭文件包含進去了,還是沒法通過,後來通過查找資料得知pthread 庫不是 Linux 系統默認的庫,連接時需要使用靜態庫 libpthread.a,所以在使用pthread_create()創建線程,以及調用 pthread_atfork()函數建立fork處理程序時,需要鏈接該庫。
知道原因後問題就很好解決了,只需在每次編譯時用gcc的-l選項將pthread庫鏈接一下就行了,例如:
gcc example.c -o example.out -lpthread
這樣就可以解決pthread_create()函數沒有定義的問題了。