Tôi đang sử dụng bison & flex (tải xuống qua cygwin) với vC++. Khi tôi biên dịch chương trình tôi có một lỗi:khó khăn liên quan đến unistd.h khi biên dịch chương trình bison & flex theo vC++
...: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
Mã tương ứng trong file flex tạo là:
#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
Nếu tôi xác định YY_NO_UNISTD_H trong file flex (.l) lỗi này sẽ biến mất, nhưng tôi gặp một số lỗi khác:
...: error C2447: '{' : missing function header (old-style formal list?)
...: warning C4018: '<' : signed/unsigned mismatch
...: error C3861: 'isatty': identifier not found
Làm cách nào để khắc phục sự cố này?
Tất cả các lỗi này xảy ra trong máy quét được tạo flex.
Tôi biết đó là vì unistd.h không tồn tại trong cửa sổ. Tôi có phải viết unistd.h của riêng mình không? Nếu vậy làm thế nào để viết nó để loại bỏ những sai sót?
đã có một vấn đề tương tự với chính xác rằng phiên bản – Greg