在学习《linux程序设计》时,在编译第一个多线程程序时,遇到错误:
/tmp/ccIgFrNf.o: In function `main':
thread1.c:(.text+0x29): undefined reference to `pthread_create'
thread1.c:(.text+0x6c): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
错误提示是链接错误,这是由于libpthread.a不使系统默认的库,所以在编译时需要链接libpthread.a。
即在使用pthread_xxxx()系列函数时,需要链接该库。
具体解决方式:
gcc -o thread1.c thread1 -lpthread
注意:最好把-lpthread放在编译的最后,具体原因参考《C编程专家》