0

我正在尝试使用 Flex 生成扫描仪。版本是 2.5.4。来自http://gnuwin32.sourceforge.net/packages/flex.htm网站。

我正在使用Flex 手册中的示例

我的环境是运行 VS2010 的 Windows 7。

所以我执行命令flex -c++ scanner.l生成lex.yy.cc.

我创建了一个简单的控制台应用程序。并包含目录“C:\GnuWin32\include”,其中包含flexlexer.hunistd.h.

我还将文件添加lex.yy.cc到VS2010并编译并得到错误:

c:\gnuwin32\include\flexlexer.h(47): 致命错误 C1083: 无法打开包含文件: 'iostream.h': 没有这样的文件或目录

所以我换iostream.hiostream。但现在我得到:

c:\gnuwin32\include\flexlexer.h(72):错误 C2061:语法错误:标识符“ostream”

问题是在命名空间 std 中定义的。我想我可以将 flex 编译为 C++ 而不会出现这种问题。

难道我做错了什么?使用错误的版本?

谢谢!

4

1 回答 1

1

我下载并使用了 Win flex-bison,现在一切正常。

http://sourceforge.net/projects/winflexbison/

于 2013-08-08T15:44:35.010 回答