【发布时间】:2016-09-19 15:24:22
【问题描述】:
在我开始将它用于实际项目之前,我正在测试和玩一些 flex,但我面临着一些问题。
我正在使用名为 Termux 的 Linux 模拟器开发 Android。我已经安装了 flex 和 clang 分别执行 $ apt install flex 和 $ apt install clang。
我注意到,如果我为 C 编写 flex 代码,用$ flex filename 处理它,然后用$ gcc -lfl lex.yy.c 编译它,一切都会编译并且二进制文件可以完美运行。
但是,如果我为 C++ 编写弹性代码(即仅使用 C++ 功能),使用$ flex -+ filename 处理它并使用$ g++ -lfl lex.yy.cc 编译它,在编译期间会弹出一个错误,指出文件FlexLexer.h,包含为
#include <FlexLexer.h>
没有找到。
为什么只有在使用 C++ 时才会出现这种情况?由于我实际上需要它用于 C++,我该如何解决这个问题,介意我正在使用模拟器在 Android 上工作?
【问题讨论】:
-
FlexLexer.h 在哪里?哪个目录??
-
@Techidiot 我真的不知道。正如我所说,我使用
$ apt install flex安装它,因此它可能位于我通常无法访问的目录中,例如/data。 -
您应该始终将
-l选项放在 引用库的文件之后:gcc lex.yy.c -lfl或g++ lex.yy.cc -lfl。我建议也始终使用-Wall,并使用-o executable-name指定显式输出文件,而不是将可执行文件放入a.out。
标签: android c++ flex-lexer file-not-found