Проблемы с unistd.h при компиляции программы bison & flex под vc ++

Я использую Bison & Flex (загружается через Cygwin) с VC ++. Когда я компилировал программу, я получил ошибку:

...: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory

Соответствующий код в сгенерированном файле flex:

#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 * down here because we want the user's section 1 to have been scanned first.
 * The user has a chance to override it with an option.
 */
/* %if-c-only */
#include <unistd.h>
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

Если я определю YY_NO_UNISTD_H в гибком файле (.l), эта ошибка исчезнет, ​​но я получу несколько других ошибок:

...: error C2447: '{' : missing function header (old-style formal list?)
...: warning C4018: '<' : signed/unsigned mismatch
...: error C3861: 'isatty': identifier not found

Как я могу решить эту проблему?

Все эти ошибки возникают в сканере, сгенерированном по технологии flex.

Я знаю, это потому, что unistd.h не существует в Windows. Должен ли я написать свой собственный unistd.h? Если так, как написать это, чтобы устранить эти ошибки?

Ответы на вопрос(8)

Ваш ответ на вопрос