undefined reference to `sem_wait'解决办法
时间: 2023-10-16 14:20:27 浏览: 375
undefined reference to 'pthread_create'的解决方法
这个错误通常发生在使用 POSIX 信号量(semaphore)时,表示链接器(ld)找不到 sem_wait 函数的实现。
要解决这个错误,你需要在编译时链接 POSIX 线程库(pthread),因为 sem_wait 函数是这个库提供的。在编译时加上 -pthread 选项即可,例如:
```bash
gcc -pthread -o program program.c
```
如果你使用的是 Makefile,可以在编译规则中加上 -pthread 选项,例如:
```makefile
program: program.c
gcc -pthread -o program program.c
```
另外,如果你使用的是 CMake 构建系统,可以在 CMakeLists.txt 中加入以下代码:
```cmake
find_package(Threads REQUIRED)
target_link_libraries(program Threads::Threads)
```
这会自动链接 pthread 库。
阅读全文