0

我正在尝试使用 flex++ 编写程序,但是每次我尝试编译时都会收到错误消息:

FlexLexer.h:没有这样的文件或目录

但是,该标头位于 flex 的包含文件夹中。我为 c 编译 lex 程序没有问题,但是对于带有 flex++ 的 c++,我似乎找不到方法。我已经多次下载了 flex,但我不知道我的操作系统是否有问题或类似的问题。我的操作系统是 Windows 10。谢谢

4

1 回答 1

0

一旦您了解了它的工作原理,包括应该非常简单。

让我们看看可以包含文件的一些不同方法:

#include "FlexLexer.h"

引号告诉编译器在与正在编译的文件相同的文件夹中查找文件 FlexLexer.h。就是这样,它不会在其他任何地方看起来。

现在,如果我们将引号更改为括号:

#include <FlexLexer.h>

这告诉编译器首先在同一个文件夹中查找 FlexLexer.h,但是如果没有找到它,它也会通过包含路径列表来查找它。

假设您使用的是 VisualStudio,则既有包含路径的系统列表(请参阅工具 > 选项 > 项目和解决方案 > VC++ 目录)和包含路径的项目列表(右键单击解决方案资源管理器中的项目,属性 > VC++ 目录)。遍历这两个列表。

最后,您还可以将子目录限定添加到包含中,例如:

#include "Win\FlexLexer.h"

或者

#include <Win\FlexLexer.h>

正如您可能猜到的那样,它会在两个示例中的当前目录下以及后面示例中的包含路径列表下查找路径。无论如何,一次找到该文件时,搜索将停止,编译器将使用它。所以要小心,如果有标题会在不同的库中重复名称!

于 2015-10-08T05:10:53.933 回答