1

我在这里有我的代码:

#define _GNU_SOURCE

#include "lib-ult.h"

#include <stdio.h>
#include <stdlib.h>

#include <ucontext.h>
#include <semaphore.h>

#define TRUE 1
#define FALSE 0
#define FAILURE -1

typedef struct Node {
    ucontext_t* context;
    int priority;

    struct Node* next;
    struct Node* prev;
} Node;

int STACK_SIZE = 16384;

sem_t queueLock;

sem_t threadsLock;

当我尝试构建我得到的项目时Error 1 error C1083: Cannot open include file: 'ucontext.h': No such file or directory(以及 semaphore.h)。

为什么是这样?我如何解决它?这与我有一台 Windows 机器有关吗?

谢谢!

4

2 回答 2

2

ucontext.h并且semaphore.hlinux-headerslinux 软件包的一部分。我认为您无法在 Windows 上编译此应用程序。用 Linux 安装虚拟机并尝试在那里编译。

于 2014-03-26T08:08:36.483 回答
0

假设您有semaphore.h和/或ucontext.h在 中/path/to/dir,您可以添加选项-I/path/to/dirgcc解决此问题。

顺便说一句,semaphore.h并且ucontex.h是 Glibc 的一部分,具有正确安装的 GNU 工具链,gcc应该能够在没有任何其他选项的情况下找到它们。

于 2014-03-26T08:16:50.350 回答