Linux Ubuntu執行執行緒程式出現undefined reference to ‘pthread_create’和undefined reference to ‘pthread_join’錯誤。
阿新 • • 發佈:2019-01-07
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
就可以通過了。