我创建了一个简单的Flex文件,用于从文件中读取和返回令牌。我使用命令 flex -c ++ scanner. 生成扫描程序文件。当尝试编译生成的lex.yy.cc文件时,我收到错误:
Fatal error: FlexLexer.h: No such file or directory
flex的include文件夹包含FlexLexer.h文件。我还尝试将文件复制到lex.yy.cc所在的同一文件夹中。仍然存在错误。
我使用的是Windows7。
我该如何解决这个问题。谢谢
答案 0 :(得分:2)
生成的扫描程序使用以下行:
#include <FlexLexer.h>
表示将在系统包含目录中搜索FlexLexer.h
文件。如果正确安装flex,安装应将FlexLexer.h
文件放在某个系统包含目录中。如果您只是下载灵活源并在不安装的情况下进行编译,那将无效。它也可能在Windows环境中不起作用;我从未尝试过。
如果您没有其他选择,并且您正在使用gcc
,则可以告诉gcc
使用include
源树中的flex
目录作为系统使用命令行选项-isystem /path/to/flex/include
包含目录。几乎可以肯定VS2010相当,但我不知道它是什么。