1. 程式人生 > >c++使用thread類時編譯出錯,對‘pthread_create’未定義的引用

c++使用thread類時編譯出錯,對‘pthread_create’未定義的引用

cti undefine defined 系統默認 func ext reat lec status

/tmp/ccM2tvqF.o: In function `main':
thread_c.c:(.text+0x1f): undefined reference to `pthread_create'
thread_c.c:(.text+0x52): undefined reference to `pthread_create'
thread_c.c:(.text+0x7d): undefined reference to `pthread_join'
thread_c.c:(.text+0xa9): undefined reference to `pthread_join'
collect2: ld returned 1 exit status


查了老半天,以為代碼的問題,最後才知道是因為pthread庫不是Linux系統默認的庫,連接時需要使用庫libpthread.a,所以在使用pthread_create創建線程時,在編譯中要加-lpthread參數:gcc test_thread.c -lpthread -o test_thread. 加上這個以後編譯成功!

c++使用thread類時編譯出錯,對‘pthread_create’未定義的引用