我的代码在这里:
#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机器的事实有关吗?
谢谢!
答案 0 :(得分:2)
ucontext.h
和semaphore.h
是linux-headers
linux软件包的一部分。我认为您无法在Windows上编译此应用程序。使用Linux安装虚拟机并尝试在那里编译。
答案 1 :(得分:0)
假设semaphore.h
中有ucontext.h
和/或/path/to/dir
,您可以向-I/path/to/dir
添加选项gcc
以解决此问题。
顺便说一下,semaphore.h
和ucontex.h
是Glibc的一部分,如果正确安装了GNU工具链,gcc
应该能够在没有任何其他选项的情况下找到它们。