解决C语言undefined reference to pthread_join

本文最后更新于:2 个月前

保留现场

undefined reference to sleep同样的问题。
在使用C语言线程函数时,需要包含#include <pthread>,编译时就会报这种错误。

探究原因

pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。

解决方法

1
2
gcc thread.c -o thread -lpthread

如果是Makefile配置的编译条件,在Makefile文件中加上如下:

1
CFLAGS += -lpthread

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!