pthread_create无法编译
时间: 2023-09-19 13:08:58 浏览: 91
当在Linux中编译创建多线程时出现undefined reference to `pthread_create'错误,这是因为pthread库不是Linux下的默认库。在链接过程中,无法找到pthread库中函数的入口地址,所以链接会失败。为了解决这个问题,我们需要在gcc编译命令中添加`-lpthread`参数来附加pthread库。注意,在Ubuntu系统中,需要将`-lpthread`参数放在后面。例如,编译命令可以是`gcc pthread_create.c -o pthread_create -pthread`。
另一种解决方法是将`-lpthread`参数放在gcc命令的最后,例如`gcc pthread_create.c -lpthread`。这样就可以避免undefined reference错误的发生。
以下是一个示例代码,展示了如何使用pthread_create函数创建线程:
```c
#include <pthread.h>
#include <stdio.h>
void* threadFunc(void* p) {
while (1) {
printf("a");
}
return NULL;
}
int main () {
pthread_t id;
pthread_create (&id, NULL, threadFunc, NULL);
while (1) {
printf("b");
}
return 0;
}
```
请注意,在编译此代码时,需要添加`-lpthread`参数来链接pthread库。
阅读全文