gpt4 book ai didi

C++ sleep pthread 冲突

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:27 26 4
gpt4 key购买 nike

我正在编写有关死锁及其检测的代码,我在 64 位 Ubuntu 12.10 上使用 eclipse Juno C/C++。问题是当我使用

sleep(1)

我明白了

sleep was not declared in this scope

当我构建项目时,我尝试包含

include < unistd.h>

,但是所有的 pthread 函数都像

pthread_join

给我这样的错误

undefined reference to pthread_join

,没有#include 这样的错误不会出现。

示例代码:

#include <unistd.h>
#include <iostream>
#include <semaphore.h>
#include <queue>
#include <stdlib.h>

using namespace std;

pthread_mutex_t mutex;
sem_t sem; //used for writing in the console

.......

void cross(Batman b) {
// code to check traffic from the right, use counters, condition
sem_wait(&sem);
cout << "BAT " << b.num << " from " << b.direction << " crossing" << endl;
sem_post(&sem);
sleep(1);
}
........

附注我按照这些说明让 pthreads 在其他项目中工作,我为这个项目做了同样的事情 http://blog.asteriosk.gr/2009/02/15/adding-pthread-to-eclipse-for-using-posix-threads/

附注我正在和一个 friend 一起做这个项目,我使用了他使用的相同代码,但仍然遇到这些错误,而他没有

最佳答案

当你 #include < unistd.h> ,你修复了 sleep 函数查找问题,现在你有 pthread 库问题。

接下来你需要#include <pthread.h>并将您的应用程序与 pthread 库链接

关于C++ sleep pthread 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com