Linux下 undefined reference to "pthread_*" 问题
(2010-05-30 20:29:14)KDevelop:
When you build a project by KDevelop, you'd better add a '-pthread' to the link option if your project includes <pthread.h>. Without that option, KDevelop would report an link error : '/root/kde/oop/src/oop.c:23: undefined reference to `pthread_create'
After rebuild, the program works well.
Eclipse + CDT:
When you use pthread_create in your project, it will compile and link ok. But when you execute the program, the thread will receive a signal SIGSEGV that said: Execution is suspended because of error. Cannot find bounds of current function
I tried to add '-pthread' to the link option of the Eclipse CDT, but it's helpless. I don't know how to correct this.
Linux上编译pthread程序,默认会出错。如题。原因如下。
所以 gcc -o backupfile backupfiles.c -pthread
出现如下错误:
undefined reference to 'pthread_create'
undefined reference to 'pthread_join'
问题原因:
pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。
问题解决:
在编译中要加 -lpthread参数
gcc thread.c -o thread -lpthread
thread.c为你些的源文件,不要忘了加上头文件#include<pthread.h>