pthread_create+编译报错
时间: 2024-01-13 14:20:16 浏览: 216
在Linux下使用gcc编译C或C++程序时,如果出现类似"Looking for pthread_create - not found"或"undefined reference to `pthread_create'"的错误,通常是因为编译器找不到pthread库的链接。解决这个问题的方法是在编译命令中添加-pthread选项,以告诉编译器链接pthread库。
下面是两个示例,分别演示了在C和C++程序中使用pthread_create函数并解决编译报错的方法:
1. 在C程序中使用pthread_create函数:
```c
#include <pthread.h>
void* thread_func(void* arg) {
// 线程的代码逻辑
return NULL;
}
int main() {
pthread_t thread;
pthread_create(&thread, NULL, thread_func, NULL);
pthread_join(thread, NULL);
return 0;
}
```
编译命令:
```shell
gcc -pthread main.c -o main
```
2. 在C++程序中使用std::thread类:
```cpp
#include <thread>
void thread_func() {
// 线程的代码逻辑
}
int main() {
std::thread thread(thread_func);
thread.join();
return 0;
}
```
编译命令:
```shell
g++ -pthread main.cpp -o main
```
阅读全文