1. 程式人生 > >Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。

Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。

Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。

編寫好執行緒程式碼,進行編譯

gcc xiancheng.c -o xiancheng

出現下面提示

1 [email protected]:~/workdir$ gcc xiancheng.c -o xiancheng
2 /tmp/ccOCxLrd.o: In function `main':
3 xiancheng.c:(.text+0x11e): undefined reference to `pthread_create'
4 xiancheng.c:(.text+0x131): undefined reference to `pthread_join' 5 collect2: ld 返回 1 6 [email protected]:~/workdir$

問題的原因:在程式的標頭檔案引用中,包含有pthread標頭檔案,而它並不是linux下的預設的庫,也就是在連結的時候,無法找到phread庫中哥函式的入口地址,於是連結會失敗。

#include <pthread.h>

解決:在gcc編譯的時候,附加要加 -lpthread引數即可解決。

使用下面程式碼進行編譯

gcc xiancheng.c -o xiancheng -lpthread

就可以通過了。