我正在尝试使用 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.h
和unistd.h
.
我还将文件添加lex.yy.cc
到VS2010并编译并得到错误:
c:\gnuwin32\include\flexlexer.h(47): 致命错误 C1083: 无法打开包含文件: 'iostream.h': 没有这样的文件或目录
所以我换iostream.h
了iostream
。但现在我得到:
c:\gnuwin32\include\flexlexer.h(72):错误 C2061:语法错误:标识符“ostream”
问题是在命名空间 std 中定义的。我想我可以将 flex 编译为 C++ 而不会出现这种问题。
难道我做错了什么?使用错误的版本?
谢谢!